;(function(root){var freeExports=typeof exports=='object'&&exports;var freeModule=typeof module=='object'&&module&&module.exports==freeExports&&module;var freeGlobal=typeof global=='object'&&global;if(freeGlobal.global===freeGlobal||freeGlobal.window===freeGlobal){root=freeGlobal;}var regexAstralSymbols=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;var regexAsciiWhitelist=/[\x01-\x7F]/g;var regexBmpWhitelist=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g;var regexEncodeNonAscii=/<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g;var encodeMap={'\xC1':'Aacute','\xE1':'aacute','\u0102':'Abreve','\u0103':'abreve','\u223E':'ac','\u223F':'acd','\u223E\u0333':'acE','\xC2':'Acirc','\xE2':'acirc','\xB4':'acute','\u0410':'Acy','\u0430':'acy','\xC6':'AElig','\xE6':'aelig','\u2061':'af','\uD835\uDD04':'Afr','\uD835\uDD1E':'afr','\xC0':'Agrave','\xE0':'agrave','\u2135':'aleph','\u0391':'Alpha','\u03B1':'alpha','\u0100':'Amacr','\u0101':'amacr','\u2A3F':'amalg','&':'amp','\u2A55':'andand','\u2A53':'And','\u2227':'and','\u2A5C':'andd','\u2A58':'andslope','\u2A5A':'andv','\u2220':'ang','\u29A4':'ange','\u29A8':'angmsdaa','\u29A9':'angmsdab','\u29AA':'angmsdac','\u29AB':'angmsdad','\u29AC':'angmsdae','\u29AD':'angmsdaf','\u29AE':'angmsdag','\u29AF':'angmsdah','\u2221':'angmsd','\u221F':'angrt','\u22BE':'angrtvb','\u299D':'angrtvbd','\u2222':'angsph','\xC5':'angst','\u237C':'angzarr','\u0104':'Aogon','\u0105':'aogon','\uD835\uDD38':'Aopf','\uD835\uDD52':'aopf','\u2A6F':'apacir','\u2248':'ap','\u2A70':'apE','\u224A':'ape','\u224B':'apid','\'':'apos','\xE5':'aring','\uD835\uDC9C':'Ascr','\uD835\uDCB6':'ascr','\u2254':'colone','*':'ast','\u224D':'CupCap','\xC3':'Atilde','\xE3':'atilde','\xC4':'Auml','\xE4':'auml','\u2233':'awconint','\u2A11':'awint','\u224C':'bcong','\u03F6':'bepsi','\u2035':'bprime','\u223D':'bsim','\u22CD':'bsime','\u2216':'setmn','\u2AE7':'Barv','\u22BD':'barvee','\u2305':'barwed','\u2306':'Barwed','\u23B5':'bbrk','\u23B6':'bbrktbrk','\u0411':'Bcy','\u0431':'bcy','\u201E':'bdquo','\u2235':'becaus','\u29B0':'bemptyv','\u212C':'Bscr','\u0392':'Beta','\u03B2':'beta','\u2136':'beth','\u226C':'twixt','\uD835\uDD05':'Bfr','\uD835\uDD1F':'bfr','\u22C2':'xcap','\u25EF':'xcirc','\u22C3':'xcup','\u2A00':'xodot','\u2A01':'xoplus','\u2A02':'xotime','\u2A06':'xsqcup','\u2605':'starf','\u25BD':'xdtri','\u25B3':'xutri','\u2A04':'xuplus','\u22C1':'Vee','\u22C0':'Wedge','\u290D':'rbarr','\u29EB':'lozf','\u25AA':'squf','\u25B4':'utrif','\u25BE':'dtrif','\u25C2':'ltrif','\u25B8':'rtrif','\u2423':'blank','\u2592':'blk12','\u2591':'blk14','\u2593':'blk34','\u2588':'block','=\u20E5':'bne','\u2261\u20E5':'bnequiv','\u2AED':'bNot','\u2310':'bnot','\uD835\uDD39':'Bopf','\uD835\uDD53':'bopf','\u22A5':'bot','\u22C8':'bowtie','\u29C9':'boxbox','\u2510':'boxdl','\u2555':'boxdL','\u2556':'boxDl','\u2557':'boxDL','\u250C':'boxdr','\u2552':'boxdR','\u2553':'boxDr','\u2554':'boxDR','\u2500':'boxh','\u2550':'boxH','\u252C':'boxhd','\u2564':'boxHd','\u2565':'boxhD','\u2566':'boxHD','\u2534':'boxhu','\u2567':'boxHu','\u2568':'boxhU','\u2569':'boxHU','\u229F':'minusb','\u229E':'plusb','\u22A0':'timesb','\u2518':'boxul','\u255B':'boxuL','\u255C':'boxUl','\u255D':'boxUL','\u2514':'boxur','\u2558':'boxuR','\u2559':'boxUr','\u255A':'boxUR','\u2502':'boxv','\u2551':'boxV','\u253C':'boxvh','\u256A':'boxvH','\u256B':'boxVh','\u256C':'boxVH','\u2524':'boxvl','\u2561':'boxvL','\u2562':'boxVl','\u2563':'boxVL','\u251C':'boxvr','\u255E':'boxvR','\u255F':'boxVr','\u2560':'boxVR','\u02D8':'breve','\xA6':'brvbar','\uD835\uDCB7':'bscr','\u204F':'bsemi','\u29C5':'bsolb','\\':'bsol','\u27C8':'bsolhsub','\u2022':'bull','\u224E':'bump','\u2AAE':'bumpE','\u224F':'bumpe','\u0106':'Cacute','\u0107':'cacute','\u2A44':'capand','\u2A49':'capbrcup','\u2A4B':'capcap','\u2229':'cap','\u22D2':'Cap','\u2A47':'capcup','\u2A40':'capdot','\u2145':'DD','\u2229\uFE00':'caps','\u2041':'caret','\u02C7':'caron','\u212D':'Cfr','\u2A4D':'ccaps','\u010C':'Ccaron','\u010D':'ccaron','\xC7':'Ccedil','\xE7':'ccedil','\u0108':'Ccirc','\u0109':'ccirc','\u2230':'Cconint','\u2A4C':'ccups','\u2A50':'ccupssm','\u010A':'Cdot','\u010B':'cdot','\xB8':'cedil','\u29B2':'cemptyv','\xA2':'cent','\xB7':'middot','\uD835\uDD20':'cfr','\u0427':'CHcy','\u0447':'chcy','\u2713':'check','\u03A7':'Chi','\u03C7':'chi','\u02C6':'circ','\u2257':'cire','\u21BA':'olarr','\u21BB':'orarr','\u229B':'oast','\u229A':'ocir','\u229D':'odash','\u2299':'odot','\xAE':'reg','\u24C8':'oS','\u2296':'ominus','\u2295':'oplus','\u2297':'otimes','\u25CB':'cir','\u29C3':'cirE','\u2A10':'cirfnint','\u2AEF':'cirmid','\u29C2':'cirscir','\u2232':'cwconint','\u201D':'rdquo','\u2019':'rsquo','\u2663':'clubs',':':'colon','\u2237':'Colon','\u2A74':'Colone',',':'comma','@':'commat','\u2201':'comp','\u2218':'compfn','\u2102':'Copf','\u2245':'cong','\u2A6D':'congdot','\u2261':'equiv','\u222E':'oint','\u222F':'Conint','\uD835\uDD54':'copf','\u2210':'coprod','\xA9':'copy','\u2117':'copysr','\u21B5':'crarr','\u2717':'cross','\u2A2F':'Cross','\uD835\uDC9E':'Cscr','\uD835\uDCB8':'cscr','\u2ACF':'csub','\u2AD1':'csube','\u2AD0':'csup','\u2AD2':'csupe','\u22EF':'ctdot','\u2938':'cudarrl','\u2935':'cudarrr','\u22DE':'cuepr','\u22DF':'cuesc','\u21B6':'cularr','\u293D':'cularrp','\u2A48':'cupbrcap','\u2A46':'cupcap','\u222A':'cup','\u22D3':'Cup','\u2A4A':'cupcup','\u228D':'cupdot','\u2A45':'cupor','\u222A\uFE00':'cups','\u21B7':'curarr','\u293C':'curarrm','\u22CE':'cuvee','\u22CF':'cuwed','\xA4':'curren','\u2231':'cwint','\u232D':'cylcty','\u2020':'dagger','\u2021':'Dagger','\u2138':'daleth','\u2193':'darr','\u21A1':'Darr','\u21D3':'dArr','\u2010':'dash','\u2AE4':'Dashv','\u22A3':'dashv','\u290F':'rBarr','\u02DD':'dblac','\u010E':'Dcaron','\u010F':'dcaron','\u0414':'Dcy','\u0434':'dcy','\u21CA':'ddarr','\u2146':'dd','\u2911':'DDotrahd','\u2A77':'eDDot','\xB0':'deg','\u2207':'Del','\u0394':'Delta','\u03B4':'delta','\u29B1':'demptyv','\u297F':'dfisht','\uD835\uDD07':'Dfr','\uD835\uDD21':'dfr','\u2965':'dHar','\u21C3':'dharl','\u21C2':'dharr','\u02D9':'dot','`':'grave','\u02DC':'tilde','\u22C4':'diam','\u2666':'diams','\xA8':'die','\u03DD':'gammad','\u22F2':'disin','\xF7':'div','\u22C7':'divonx','\u0402':'DJcy','\u0452':'djcy','\u231E':'dlcorn','\u230D':'dlcrop','$':'dollar','\uD835\uDD3B':'Dopf','\uD835\uDD55':'dopf','\u20DC':'DotDot','\u2250':'doteq','\u2251':'eDot','\u2238':'minusd','\u2214':'plusdo','\u22A1':'sdotb','\u21D0':'lArr','\u21D4':'iff','\u27F8':'xlArr','\u27FA':'xhArr','\u27F9':'xrArr','\u21D2':'rArr','\u22A8':'vDash','\u21D1':'uArr','\u21D5':'vArr','\u2225':'par','\u2913':'DownArrowBar','\u21F5':'duarr','\u0311':'DownBreve','\u2950':'DownLeftRightVector','\u295E':'DownLeftTeeVector','\u2956':'DownLeftVectorBar','\u21BD':'lhard','\u295F':'DownRightTeeVector','\u2957':'DownRightVectorBar','\u21C1':'rhard','\u21A7':'mapstodown','\u22A4':'top','\u2910':'RBarr','\u231F':'drcorn','\u230C':'drcrop','\uD835\uDC9F':'Dscr','\uD835\uDCB9':'dscr','\u0405':'DScy','\u0455':'dscy','\u29F6':'dsol','\u0110':'Dstrok','\u0111':'dstrok','\u22F1':'dtdot','\u25BF':'dtri','\u296F':'duhar','\u29A6':'dwangle','\u040F':'DZcy','\u045F':'dzcy','\u27FF':'dzigrarr','\xC9':'Eacute','\xE9':'eacute','\u2A6E':'easter','\u011A':'Ecaron','\u011B':'ecaron','\xCA':'Ecirc','\xEA':'ecirc','\u2256':'ecir','\u2255':'ecolon','\u042D':'Ecy','\u044D':'ecy','\u0116':'Edot','\u0117':'edot','\u2147':'ee','\u2252':'efDot','\uD835\uDD08':'Efr','\uD835\uDD22':'efr','\u2A9A':'eg','\xC8':'Egrave','\xE8':'egrave','\u2A96':'egs','\u2A98':'egsdot','\u2A99':'el','\u2208':'in','\u23E7':'elinters','\u2113':'ell','\u2A95':'els','\u2A97':'elsdot','\u0112':'Emacr','\u0113':'emacr','\u2205':'empty','\u25FB':'EmptySmallSquare','\u25AB':'EmptyVerySmallSquare','\u2004':'emsp13','\u2005':'emsp14','\u2003':'emsp','\u014A':'ENG','\u014B':'eng','\u2002':'ensp','\u0118':'Eogon','\u0119':'eogon','\uD835\uDD3C':'Eopf','\uD835\uDD56':'eopf','\u22D5':'epar','\u29E3':'eparsl','\u2A71':'eplus','\u03B5':'epsi','\u0395':'Epsilon','\u03F5':'epsiv','\u2242':'esim','\u2A75':'Equal','=':'equals','\u225F':'equest','\u21CC':'rlhar','\u2A78':'equivDD','\u29E5':'eqvparsl','\u2971':'erarr','\u2253':'erDot','\u212F':'escr','\u2130':'Escr','\u2A73':'Esim','\u0397':'Eta','\u03B7':'eta','\xD0':'ETH','\xF0':'eth','\xCB':'Euml','\xEB':'euml','\u20AC':'euro','!':'excl','\u2203':'exist','\u0424':'Fcy','\u0444':'fcy','\u2640':'female','\uFB03':'ffilig','\uFB00':'fflig','\uFB04':'ffllig','\uD835\uDD09':'Ffr','\uD835\uDD23':'ffr','\uFB01':'filig','\u25FC':'FilledSmallSquare','fj':'fjlig','\u266D':'flat','\uFB02':'fllig','\u25B1':'fltns','\u0192':'fnof','\uD835\uDD3D':'Fopf','\uD835\uDD57':'fopf','\u2200':'forall','\u22D4':'fork','\u2AD9':'forkv','\u2131':'Fscr','\u2A0D':'fpartint','\xBD':'half','\u2153':'frac13','\xBC':'frac14','\u2155':'frac15','\u2159':'frac16','\u215B':'frac18','\u2154':'frac23','\u2156':'frac25','\xBE':'frac34','\u2157':'frac35','\u215C':'frac38','\u2158':'frac45','\u215A':'frac56','\u215D':'frac58','\u215E':'frac78','\u2044':'frasl','\u2322':'frown','\uD835\uDCBB':'fscr','\u01F5':'gacute','\u0393':'Gamma','\u03B3':'gamma','\u03DC':'Gammad','\u2A86':'gap','\u011E':'Gbreve','\u011F':'gbreve','\u0122':'Gcedil','\u011C':'Gcirc','\u011D':'gcirc','\u0413':'Gcy','\u0433':'gcy','\u0120':'Gdot','\u0121':'gdot','\u2265':'ge','\u2267':'gE','\u2A8C':'gEl','\u22DB':'gel','\u2A7E':'ges','\u2AA9':'gescc','\u2A80':'gesdot','\u2A82':'gesdoto','\u2A84':'gesdotol','\u22DB\uFE00':'gesl','\u2A94':'gesles','\uD835\uDD0A':'Gfr','\uD835\uDD24':'gfr','\u226B':'gg','\u22D9':'Gg','\u2137':'gimel','\u0403':'GJcy','\u0453':'gjcy','\u2AA5':'gla','\u2277':'gl','\u2A92':'glE','\u2AA4':'glj','\u2A8A':'gnap','\u2A88':'gne','\u2269':'gnE','\u22E7':'gnsim','\uD835\uDD3E':'Gopf','\uD835\uDD58':'gopf','\u2AA2':'GreaterGreater','\u2273':'gsim','\uD835\uDCA2':'Gscr','\u210A':'gscr','\u2A8E':'gsime','\u2A90':'gsiml','\u2AA7':'gtcc','\u2A7A':'gtcir','>':'gt','\u22D7':'gtdot','\u2995':'gtlPar','\u2A7C':'gtquest','\u2978':'gtrarr','\u2269\uFE00':'gvnE','\u200A':'hairsp','\u210B':'Hscr','\u042A':'HARDcy','\u044A':'hardcy','\u2948':'harrcir','\u2194':'harr','\u21AD':'harrw','^':'Hat','\u210F':'hbar','\u0124':'Hcirc','\u0125':'hcirc','\u2665':'hearts','\u2026':'mldr','\u22B9':'hercon','\uD835\uDD25':'hfr','\u210C':'Hfr','\u2925':'searhk','\u2926':'swarhk','\u21FF':'hoarr','\u223B':'homtht','\u21A9':'larrhk','\u21AA':'rarrhk','\uD835\uDD59':'hopf','\u210D':'Hopf','\u2015':'horbar','\uD835\uDCBD':'hscr','\u0126':'Hstrok','\u0127':'hstrok','\u2043':'hybull','\xCD':'Iacute','\xED':'iacute','\u2063':'ic','\xCE':'Icirc','\xEE':'icirc','\u0418':'Icy','\u0438':'icy','\u0130':'Idot','\u0415':'IEcy','\u0435':'iecy','\xA1':'iexcl','\uD835\uDD26':'ifr','\u2111':'Im','\xCC':'Igrave','\xEC':'igrave','\u2148':'ii','\u2A0C':'qint','\u222D':'tint','\u29DC':'iinfin','\u2129':'iiota','\u0132':'IJlig','\u0133':'ijlig','\u012A':'Imacr','\u012B':'imacr','\u2110':'Iscr','\u0131':'imath','\u22B7':'imof','\u01B5':'imped','\u2105':'incare','\u221E':'infin','\u29DD':'infintie','\u22BA':'intcal','\u222B':'int','\u222C':'Int','\u2124':'Zopf','\u2A17':'intlarhk','\u2A3C':'iprod','\u2062':'it','\u0401':'IOcy','\u0451':'iocy','\u012E':'Iogon','\u012F':'iogon','\uD835\uDD40':'Iopf','\uD835\uDD5A':'iopf','\u0399':'Iota','\u03B9':'iota','\xBF':'iquest','\uD835\uDCBE':'iscr','\u22F5':'isindot','\u22F9':'isinE','\u22F4':'isins','\u22F3':'isinsv','\u0128':'Itilde','\u0129':'itilde','\u0406':'Iukcy','\u0456':'iukcy','\xCF':'Iuml','\xEF':'iuml','\u0134':'Jcirc','\u0135':'jcirc','\u0419':'Jcy','\u0439':'jcy','\uD835\uDD0D':'Jfr','\uD835\uDD27':'jfr','\u0237':'jmath','\uD835\uDD41':'Jopf','\uD835\uDD5B':'jopf','\uD835\uDCA5':'Jscr','\uD835\uDCBF':'jscr','\u0408':'Jsercy','\u0458':'jsercy','\u0404':'Jukcy','\u0454':'jukcy','\u039A':'Kappa','\u03BA':'kappa','\u03F0':'kappav','\u0136':'Kcedil','\u0137':'kcedil','\u041A':'Kcy','\u043A':'kcy','\uD835\uDD0E':'Kfr','\uD835\uDD28':'kfr','\u0138':'kgreen','\u0425':'KHcy','\u0445':'khcy','\u040C':'KJcy','\u045C':'kjcy','\uD835\uDD42':'Kopf','\uD835\uDD5C':'kopf','\uD835\uDCA6':'Kscr','\uD835\uDCC0':'kscr','\u21DA':'lAarr','\u0139':'Lacute','\u013A':'lacute','\u29B4':'laemptyv','\u2112':'Lscr','\u039B':'Lambda','\u03BB':'lambda','\u27E8':'lang','\u27EA':'Lang','\u2991':'langd','\u2A85':'lap','\xAB':'laquo','\u21E4':'larrb','\u291F':'larrbfs','\u2190':'larr','\u219E':'Larr','\u291D':'larrfs','\u21AB':'larrlp','\u2939':'larrpl','\u2973':'larrsim','\u21A2':'larrtl','\u2919':'latail','\u291B':'lAtail','\u2AAB':'lat','\u2AAD':'late','\u2AAD\uFE00':'lates','\u290C':'lbarr','\u290E':'lBarr','\u2772':'lbbrk','{':'lcub','[':'lsqb','\u298B':'lbrke','\u298F':'lbrksld','\u298D':'lbrkslu','\u013D':'Lcaron','\u013E':'lcaron','\u013B':'Lcedil','\u013C':'lcedil','\u2308':'lceil','\u041B':'Lcy','\u043B':'lcy','\u2936':'ldca','\u201C':'ldquo','\u2967':'ldrdhar','\u294B':'ldrushar','\u21B2':'ldsh','\u2264':'le','\u2266':'lE','\u21C6':'lrarr','\u27E6':'lobrk','\u2961':'LeftDownTeeVector','\u2959':'LeftDownVectorBar','\u230A':'lfloor','\u21BC':'lharu','\u21C7':'llarr','\u21CB':'lrhar','\u294E':'LeftRightVector','\u21A4':'mapstoleft','\u295A':'LeftTeeVector','\u22CB':'lthree','\u29CF':'LeftTriangleBar','\u22B2':'vltri','\u22B4':'ltrie','\u2951':'LeftUpDownVector','\u2960':'LeftUpTeeVector','\u2958':'LeftUpVectorBar','\u21BF':'uharl','\u2952':'LeftVectorBar','\u2A8B':'lEg','\u22DA':'leg','\u2A7D':'les','\u2AA8':'lescc','\u2A7F':'lesdot','\u2A81':'lesdoto','\u2A83':'lesdotor','\u22DA\uFE00':'lesg','\u2A93':'lesges','\u22D6':'ltdot','\u2276':'lg','\u2AA1':'LessLess','\u2272':'lsim','\u297C':'lfisht','\uD835\uDD0F':'Lfr','\uD835\uDD29':'lfr','\u2A91':'lgE','\u2962':'lHar','\u296A':'lharul','\u2584':'lhblk','\u0409':'LJcy','\u0459':'ljcy','\u226A':'ll','\u22D8':'Ll','\u296B':'llhard','\u25FA':'lltri','\u013F':'Lmidot','\u0140':'lmidot','\u23B0':'lmoust','\u2A89':'lnap','\u2A87':'lne','\u2268':'lnE','\u22E6':'lnsim','\u27EC':'loang','\u21FD':'loarr','\u27F5':'xlarr','\u27F7':'xharr','\u27FC':'xmap','\u27F6':'xrarr','\u21AC':'rarrlp','\u2985':'lopar','\uD835\uDD43':'Lopf','\uD835\uDD5D':'lopf','\u2A2D':'loplus','\u2A34':'lotimes','\u2217':'lowast','_':'lowbar','\u2199':'swarr','\u2198':'searr','\u25CA':'loz','(':'lpar','\u2993':'lparlt','\u296D':'lrhard','\u200E':'lrm','\u22BF':'lrtri','\u2039':'lsaquo','\uD835\uDCC1':'lscr','\u21B0':'lsh','\u2A8D':'lsime','\u2A8F':'lsimg','\u2018':'lsquo','\u201A':'sbquo','\u0141':'Lstrok','\u0142':'lstrok','\u2AA6':'ltcc','\u2A79':'ltcir','<':'lt','\u22C9':'ltimes','\u2976':'ltlarr','\u2A7B':'ltquest','\u25C3':'ltri','\u2996':'ltrPar','\u294A':'lurdshar','\u2966':'luruhar','\u2268\uFE00':'lvnE','\xAF':'macr','\u2642':'male','\u2720':'malt','\u2905':'Map','\u21A6':'map','\u21A5':'mapstoup','\u25AE':'marker','\u2A29':'mcomma','\u041C':'Mcy','\u043C':'mcy','\u2014':'mdash','\u223A':'mDDot','\u205F':'MediumSpace','\u2133':'Mscr','\uD835\uDD10':'Mfr','\uD835\uDD2A':'mfr','\u2127':'mho','\xB5':'micro','\u2AF0':'midcir','\u2223':'mid','\u2212':'minus','\u2A2A':'minusdu','\u2213':'mp','\u2ADB':'mlcp','\u22A7':'models','\uD835\uDD44':'Mopf','\uD835\uDD5E':'mopf','\uD835\uDCC2':'mscr','\u039C':'Mu','\u03BC':'mu','\u22B8':'mumap','\u0143':'Nacute','\u0144':'nacute','\u2220\u20D2':'nang','\u2249':'nap','\u2A70\u0338':'napE','\u224B\u0338':'napid','\u0149':'napos','\u266E':'natur','\u2115':'Nopf','\xA0':'nbsp','\u224E\u0338':'nbump','\u224F\u0338':'nbumpe','\u2A43':'ncap','\u0147':'Ncaron','\u0148':'ncaron','\u0145':'Ncedil','\u0146':'ncedil','\u2247':'ncong','\u2A6D\u0338':'ncongdot','\u2A42':'ncup','\u041D':'Ncy','\u043D':'ncy','\u2013':'ndash','\u2924':'nearhk','\u2197':'nearr','\u21D7':'neArr','\u2260':'ne','\u2250\u0338':'nedot','\u200B':'ZeroWidthSpace','\u2262':'nequiv','\u2928':'toea','\u2242\u0338':'nesim','\n':'NewLine','\u2204':'nexist','\uD835\uDD11':'Nfr','\uD835\uDD2B':'nfr','\u2267\u0338':'ngE','\u2271':'nge','\u2A7E\u0338':'nges','\u22D9\u0338':'nGg','\u2275':'ngsim','\u226B\u20D2':'nGt','\u226F':'ngt','\u226B\u0338':'nGtv','\u21AE':'nharr','\u21CE':'nhArr','\u2AF2':'nhpar','\u220B':'ni','\u22FC':'nis','\u22FA':'nisd','\u040A':'NJcy','\u045A':'njcy','\u219A':'nlarr','\u21CD':'nlArr','\u2025':'nldr','\u2266\u0338':'nlE','\u2270':'nle','\u2A7D\u0338':'nles','\u226E':'nlt','\u22D8\u0338':'nLl','\u2274':'nlsim','\u226A\u20D2':'nLt','\u22EA':'nltri','\u22EC':'nltrie','\u226A\u0338':'nLtv','\u2224':'nmid','\u2060':'NoBreak','\uD835\uDD5F':'nopf','\u2AEC':'Not','\xAC':'not','\u226D':'NotCupCap','\u2226':'npar','\u2209':'notin','\u2279':'ntgl','\u22F5\u0338':'notindot','\u22F9\u0338':'notinE','\u22F7':'notinvb','\u22F6':'notinvc','\u29CF\u0338':'NotLeftTriangleBar','\u2278':'ntlg','\u2AA2\u0338':'NotNestedGreaterGreater','\u2AA1\u0338':'NotNestedLessLess','\u220C':'notni','\u22FE':'notnivb','\u22FD':'notnivc','\u2280':'npr','\u2AAF\u0338':'npre','\u22E0':'nprcue','\u29D0\u0338':'NotRightTriangleBar','\u22EB':'nrtri','\u22ED':'nrtrie','\u228F\u0338':'NotSquareSubset','\u22E2':'nsqsube','\u2290\u0338':'NotSquareSuperset','\u22E3':'nsqsupe','\u2282\u20D2':'vnsub','\u2288':'nsube','\u2281':'nsc','\u2AB0\u0338':'nsce','\u22E1':'nsccue','\u227F\u0338':'NotSucceedsTilde','\u2283\u20D2':'vnsup','\u2289':'nsupe','\u2241':'nsim','\u2244':'nsime','\u2AFD\u20E5':'nparsl','\u2202\u0338':'npart','\u2A14':'npolint','\u2933\u0338':'nrarrc','\u219B':'nrarr','\u21CF':'nrArr','\u219D\u0338':'nrarrw','\uD835\uDCA9':'Nscr','\uD835\uDCC3':'nscr','\u2284':'nsub','\u2AC5\u0338':'nsubE','\u2285':'nsup','\u2AC6\u0338':'nsupE','\xD1':'Ntilde','\xF1':'ntilde','\u039D':'Nu','\u03BD':'nu','#':'num','\u2116':'numero','\u2007':'numsp','\u224D\u20D2':'nvap','\u22AC':'nvdash','\u22AD':'nvDash','\u22AE':'nVdash','\u22AF':'nVDash','\u2265\u20D2':'nvge','>\u20D2':'nvgt','\u2904':'nvHarr','\u29DE':'nvinfin','\u2902':'nvlArr','\u2264\u20D2':'nvle','<\u20D2':'nvlt','\u22B4\u20D2':'nvltrie','\u2903':'nvrArr','\u22B5\u20D2':'nvrtrie','\u223C\u20D2':'nvsim','\u2923':'nwarhk','\u2196':'nwarr','\u21D6':'nwArr','\u2927':'nwnear','\xD3':'Oacute','\xF3':'oacute','\xD4':'Ocirc','\xF4':'ocirc','\u041E':'Ocy','\u043E':'ocy','\u0150':'Odblac','\u0151':'odblac','\u2A38':'odiv','\u29BC':'odsold','\u0152':'OElig','\u0153':'oelig','\u29BF':'ofcir','\uD835\uDD12':'Ofr','\uD835\uDD2C':'ofr','\u02DB':'ogon','\xD2':'Ograve','\xF2':'ograve','\u29C1':'ogt','\u29B5':'ohbar','\u03A9':'ohm','\u29BE':'olcir','\u29BB':'olcross','\u203E':'oline','\u29C0':'olt','\u014C':'Omacr','\u014D':'omacr','\u03C9':'omega','\u039F':'Omicron','\u03BF':'omicron','\u29B6':'omid','\uD835\uDD46':'Oopf','\uD835\uDD60':'oopf','\u29B7':'opar','\u29B9':'operp','\u2A54':'Or','\u2228':'or','\u2A5D':'ord','\u2134':'oscr','\xAA':'ordf','\xBA':'ordm','\u22B6':'origof','\u2A56':'oror','\u2A57':'orslope','\u2A5B':'orv','\uD835\uDCAA':'Oscr','\xD8':'Oslash','\xF8':'oslash','\u2298':'osol','\xD5':'Otilde','\xF5':'otilde','\u2A36':'otimesas','\u2A37':'Otimes','\xD6':'Ouml','\xF6':'ouml','\u233D':'ovbar','\u23DE':'OverBrace','\u23B4':'tbrk','\u23DC':'OverParenthesis','\xB6':'para','\u2AF3':'parsim','\u2AFD':'parsl','\u2202':'part','\u041F':'Pcy','\u043F':'pcy','%':'percnt','.':'period','\u2030':'permil','\u2031':'pertenk','\uD835\uDD13':'Pfr','\uD835\uDD2D':'pfr','\u03A6':'Phi','\u03C6':'phi','\u03D5':'phiv','\u260E':'phone','\u03A0':'Pi','\u03C0':'pi','\u03D6':'piv','\u210E':'planckh','\u2A23':'plusacir','\u2A22':'pluscir','+':'plus','\u2A25':'plusdu','\u2A72':'pluse','\xB1':'pm','\u2A26':'plussim','\u2A27':'plustwo','\u2A15':'pointint','\uD835\uDD61':'popf','\u2119':'Popf','\xA3':'pound','\u2AB7':'prap','\u2ABB':'Pr','\u227A':'pr','\u227C':'prcue','\u2AAF':'pre','\u227E':'prsim','\u2AB9':'prnap','\u2AB5':'prnE','\u22E8':'prnsim','\u2AB3':'prE','\u2032':'prime','\u2033':'Prime','\u220F':'prod','\u232E':'profalar','\u2312':'profline','\u2313':'profsurf','\u221D':'prop','\u22B0':'prurel','\uD835\uDCAB':'Pscr','\uD835\uDCC5':'pscr','\u03A8':'Psi','\u03C8':'psi','\u2008':'puncsp','\uD835\uDD14':'Qfr','\uD835\uDD2E':'qfr','\uD835\uDD62':'qopf','\u211A':'Qopf','\u2057':'qprime','\uD835\uDCAC':'Qscr','\uD835\uDCC6':'qscr','\u2A16':'quatint','?':'quest','"':'quot','\u21DB':'rAarr','\u223D\u0331':'race','\u0154':'Racute','\u0155':'racute','\u221A':'Sqrt','\u29B3':'raemptyv','\u27E9':'rang','\u27EB':'Rang','\u2992':'rangd','\u29A5':'range','\xBB':'raquo','\u2975':'rarrap','\u21E5':'rarrb','\u2920':'rarrbfs','\u2933':'rarrc','\u2192':'rarr','\u21A0':'Rarr','\u291E':'rarrfs','\u2945':'rarrpl','\u2974':'rarrsim','\u2916':'Rarrtl','\u21A3':'rarrtl','\u219D':'rarrw','\u291A':'ratail','\u291C':'rAtail','\u2236':'ratio','\u2773':'rbbrk','}':'rcub',']':'rsqb','\u298C':'rbrke','\u298E':'rbrksld','\u2990':'rbrkslu','\u0158':'Rcaron','\u0159':'rcaron','\u0156':'Rcedil','\u0157':'rcedil','\u2309':'rceil','\u0420':'Rcy','\u0440':'rcy','\u2937':'rdca','\u2969':'rdldhar','\u21B3':'rdsh','\u211C':'Re','\u211B':'Rscr','\u211D':'Ropf','\u25AD':'rect','\u297D':'rfisht','\u230B':'rfloor','\uD835\uDD2F':'rfr','\u2964':'rHar','\u21C0':'rharu','\u296C':'rharul','\u03A1':'Rho','\u03C1':'rho','\u03F1':'rhov','\u21C4':'rlarr','\u27E7':'robrk','\u295D':'RightDownTeeVector','\u2955':'RightDownVectorBar','\u21C9':'rrarr','\u22A2':'vdash','\u295B':'RightTeeVector','\u22CC':'rthree','\u29D0':'RightTriangleBar','\u22B3':'vrtri','\u22B5':'rtrie','\u294F':'RightUpDownVector','\u295C':'RightUpTeeVector','\u2954':'RightUpVectorBar','\u21BE':'uharr','\u2953':'RightVectorBar','\u02DA':'ring','\u200F':'rlm','\u23B1':'rmoust','\u2AEE':'rnmid','\u27ED':'roang','\u21FE':'roarr','\u2986':'ropar','\uD835\uDD63':'ropf','\u2A2E':'roplus','\u2A35':'rotimes','\u2970':'RoundImplies',')':'rpar','\u2994':'rpargt','\u2A12':'rppolint','\u203A':'rsaquo','\uD835\uDCC7':'rscr','\u21B1':'rsh','\u22CA':'rtimes','\u25B9':'rtri','\u29CE':'rtriltri','\u29F4':'RuleDelayed','\u2968':'ruluhar','\u211E':'rx','\u015A':'Sacute','\u015B':'sacute','\u2AB8':'scap','\u0160':'Scaron','\u0161':'scaron','\u2ABC':'Sc','\u227B':'sc','\u227D':'sccue','\u2AB0':'sce','\u2AB4':'scE','\u015E':'Scedil','\u015F':'scedil','\u015C':'Scirc','\u015D':'scirc','\u2ABA':'scnap','\u2AB6':'scnE','\u22E9':'scnsim','\u2A13':'scpolint','\u227F':'scsim','\u0421':'Scy','\u0441':'scy','\u22C5':'sdot','\u2A66':'sdote','\u21D8':'seArr','\xA7':'sect',';':'semi','\u2929':'tosa','\u2736':'sext','\uD835\uDD16':'Sfr','\uD835\uDD30':'sfr','\u266F':'sharp','\u0429':'SHCHcy','\u0449':'shchcy','\u0428':'SHcy','\u0448':'shcy','\u2191':'uarr','\xAD':'shy','\u03A3':'Sigma','\u03C3':'sigma','\u03C2':'sigmaf','\u223C':'sim','\u2A6A':'simdot','\u2243':'sime','\u2A9E':'simg','\u2AA0':'simgE','\u2A9D':'siml','\u2A9F':'simlE','\u2246':'simne','\u2A24':'simplus','\u2972':'simrarr','\u2A33':'smashp','\u29E4':'smeparsl','\u2323':'smile','\u2AAA':'smt','\u2AAC':'smte','\u2AAC\uFE00':'smtes','\u042C':'SOFTcy','\u044C':'softcy','\u233F':'solbar','\u29C4':'solb','/':'sol','\uD835\uDD4A':'Sopf','\uD835\uDD64':'sopf','\u2660':'spades','\u2293':'sqcap','\u2293\uFE00':'sqcaps','\u2294':'sqcup','\u2294\uFE00':'sqcups','\u228F':'sqsub','\u2291':'sqsube','\u2290':'sqsup','\u2292':'sqsupe','\u25A1':'squ','\uD835\uDCAE':'Sscr','\uD835\uDCC8':'sscr','\u22C6':'Star','\u2606':'star','\u2282':'sub','\u22D0':'Sub','\u2ABD':'subdot','\u2AC5':'subE','\u2286':'sube','\u2AC3':'subedot','\u2AC1':'submult','\u2ACB':'subnE','\u228A':'subne','\u2ABF':'subplus','\u2979':'subrarr','\u2AC7':'subsim','\u2AD5':'subsub','\u2AD3':'subsup','\u2211':'sum','\u266A':'sung','\xB9':'sup1','\xB2':'sup2','\xB3':'sup3','\u2283':'sup','\u22D1':'Sup','\u2ABE':'supdot','\u2AD8':'supdsub','\u2AC6':'supE','\u2287':'supe','\u2AC4':'supedot','\u27C9':'suphsol','\u2AD7':'suphsub','\u297B':'suplarr','\u2AC2':'supmult','\u2ACC':'supnE','\u228B':'supne','\u2AC0':'supplus','\u2AC8':'supsim','\u2AD4':'supsub','\u2AD6':'supsup','\u21D9':'swArr','\u292A':'swnwar','\xDF':'szlig','\t':'Tab','\u2316':'target','\u03A4':'Tau','\u03C4':'tau','\u0164':'Tcaron','\u0165':'tcaron','\u0162':'Tcedil','\u0163':'tcedil','\u0422':'Tcy','\u0442':'tcy','\u20DB':'tdot','\u2315':'telrec','\uD835\uDD17':'Tfr','\uD835\uDD31':'tfr','\u2234':'there4','\u0398':'Theta','\u03B8':'theta','\u03D1':'thetav','\u205F\u200A':'ThickSpace','\u2009':'thinsp','\xDE':'THORN','\xFE':'thorn','\u2A31':'timesbar','\xD7':'times','\u2A30':'timesd','\u2336':'topbot','\u2AF1':'topcir','\uD835\uDD4B':'Topf','\uD835\uDD65':'topf','\u2ADA':'topfork','\u2034':'tprime','\u2122':'trade','\u25B5':'utri','\u225C':'trie','\u25EC':'tridot','\u2A3A':'triminus','\u2A39':'triplus','\u29CD':'trisb','\u2A3B':'tritime','\u23E2':'trpezium','\uD835\uDCAF':'Tscr','\uD835\uDCC9':'tscr','\u0426':'TScy','\u0446':'tscy','\u040B':'TSHcy','\u045B':'tshcy','\u0166':'Tstrok','\u0167':'tstrok','\xDA':'Uacute','\xFA':'uacute','\u219F':'Uarr','\u2949':'Uarrocir','\u040E':'Ubrcy','\u045E':'ubrcy','\u016C':'Ubreve','\u016D':'ubreve','\xDB':'Ucirc','\xFB':'ucirc','\u0423':'Ucy','\u0443':'ucy','\u21C5':'udarr','\u0170':'Udblac','\u0171':'udblac','\u296E':'udhar','\u297E':'ufisht','\uD835\uDD18':'Ufr','\uD835\uDD32':'ufr','\xD9':'Ugrave','\xF9':'ugrave','\u2963':'uHar','\u2580':'uhblk','\u231C':'ulcorn','\u230F':'ulcrop','\u25F8':'ultri','\u016A':'Umacr','\u016B':'umacr','\u23DF':'UnderBrace','\u23DD':'UnderParenthesis','\u228E':'uplus','\u0172':'Uogon','\u0173':'uogon','\uD835\uDD4C':'Uopf','\uD835\uDD66':'uopf','\u2912':'UpArrowBar','\u2195':'varr','\u03C5':'upsi','\u03D2':'Upsi','\u03A5':'Upsilon','\u21C8':'uuarr','\u231D':'urcorn','\u230E':'urcrop','\u016E':'Uring','\u016F':'uring','\u25F9':'urtri','\uD835\uDCB0':'Uscr','\uD835\uDCCA':'uscr','\u22F0':'utdot','\u0168':'Utilde','\u0169':'utilde','\xDC':'Uuml','\xFC':'uuml','\u29A7':'uwangle','\u299C':'vangrt','\u228A\uFE00':'vsubne','\u2ACB\uFE00':'vsubnE','\u228B\uFE00':'vsupne','\u2ACC\uFE00':'vsupnE','\u2AE8':'vBar','\u2AEB':'Vbar','\u2AE9':'vBarv','\u0412':'Vcy','\u0432':'vcy','\u22A9':'Vdash','\u22AB':'VDash','\u2AE6':'Vdashl','\u22BB':'veebar','\u225A':'veeeq','\u22EE':'vellip','|':'vert','\u2016':'Vert','\u2758':'VerticalSeparator','\u2240':'wr','\uD835\uDD19':'Vfr','\uD835\uDD33':'vfr','\uD835\uDD4D':'Vopf','\uD835\uDD67':'vopf','\uD835\uDCB1':'Vscr','\uD835\uDCCB':'vscr','\u22AA':'Vvdash','\u299A':'vzigzag','\u0174':'Wcirc','\u0175':'wcirc','\u2A5F':'wedbar','\u2259':'wedgeq','\u2118':'wp','\uD835\uDD1A':'Wfr','\uD835\uDD34':'wfr','\uD835\uDD4E':'Wopf','\uD835\uDD68':'wopf','\uD835\uDCB2':'Wscr','\uD835\uDCCC':'wscr','\uD835\uDD1B':'Xfr','\uD835\uDD35':'xfr','\u039E':'Xi','\u03BE':'xi','\u22FB':'xnis','\uD835\uDD4F':'Xopf','\uD835\uDD69':'xopf','\uD835\uDCB3':'Xscr','\uD835\uDCCD':'xscr','\xDD':'Yacute','\xFD':'yacute','\u042F':'YAcy','\u044F':'yacy','\u0176':'Ycirc','\u0177':'ycirc','\u042B':'Ycy','\u044B':'ycy','\xA5':'yen','\uD835\uDD1C':'Yfr','\uD835\uDD36':'yfr','\u0407':'YIcy','\u0457':'yicy','\uD835\uDD50':'Yopf','\uD835\uDD6A':'yopf','\uD835\uDCB4':'Yscr','\uD835\uDCCE':'yscr','\u042E':'YUcy','\u044E':'yucy','\xFF':'yuml','\u0178':'Yuml','\u0179':'Zacute','\u017A':'zacute','\u017D':'Zcaron','\u017E':'zcaron','\u0417':'Zcy','\u0437':'zcy','\u017B':'Zdot','\u017C':'zdot','\u2128':'Zfr','\u0396':'Zeta','\u03B6':'zeta','\uD835\uDD37':'zfr','\u0416':'ZHcy','\u0436':'zhcy','\u21DD':'zigrarr','\uD835\uDD6B':'zopf','\uD835\uDCB5':'Zscr','\uD835\uDCCF':'zscr','\u200D':'zwj','\u200C':'zwnj'};var regexEscape=/["&'<>`]/g;var escapeMap={'"':'&quot;','&':'&amp;','\'':'&#x27;','<':'&lt;','>':'&gt;','`':'&#x60;'};var regexInvalidEntity=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;var regexInvalidRawCodePoint=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;var regexDecode=/&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+);|&(Aacute|iacute|Uacute|plusmn|otilde|Otilde|Agrave|agrave|yacute|Yacute|oslash|Oslash|Atilde|atilde|brvbar|Ccedil|ccedil|ograve|curren|divide|Eacute|eacute|Ograve|oacute|Egrave|egrave|ugrave|frac12|frac14|frac34|Ugrave|Oacute|Iacute|ntilde|Ntilde|uacute|middot|Igrave|igrave|iquest|aacute|laquo|THORN|micro|iexcl|icirc|Icirc|Acirc|ucirc|ecirc|Ocirc|ocirc|Ecirc|Ucirc|aring|Aring|aelig|AElig|acute|pound|raquo|acirc|times|thorn|szlig|cedil|COPY|Auml|ordf|ordm|uuml|macr|Uuml|auml|Ouml|ouml|para|nbsp|Euml|quot|QUOT|euml|yuml|cent|sect|copy|sup1|sup2|sup3|Iuml|iuml|shy|eth|reg|not|yen|amp|AMP|REG|uml|ETH|deg|gt|GT|LT|lt)([=a-zA-Z0-9])?/g;var decodeMap={'Aacute':'\xC1','aacute':'\xE1','Abreve':'\u0102','abreve':'\u0103','ac':'\u223E','acd':'\u223F','acE':'\u223E\u0333','Acirc':'\xC2','acirc':'\xE2','acute':'\xB4','Acy':'\u0410','acy':'\u0430','AElig':'\xC6','aelig':'\xE6','af':'\u2061','Afr':'\uD835\uDD04','afr':'\uD835\uDD1E','Agrave':'\xC0','agrave':'\xE0','alefsym':'\u2135','aleph':'\u2135','Alpha':'\u0391','alpha':'\u03B1','Amacr':'\u0100','amacr':'\u0101','amalg':'\u2A3F','amp':'&','AMP':'&','andand':'\u2A55','And':'\u2A53','and':'\u2227','andd':'\u2A5C','andslope':'\u2A58','andv':'\u2A5A','ang':'\u2220','ange':'\u29A4','angle':'\u2220','angmsdaa':'\u29A8','angmsdab':'\u29A9','angmsdac':'\u29AA','angmsdad':'\u29AB','angmsdae':'\u29AC','angmsdaf':'\u29AD','angmsdag':'\u29AE','angmsdah':'\u29AF','angmsd':'\u2221','angrt':'\u221F','angrtvb':'\u22BE','angrtvbd':'\u299D','angsph':'\u2222','angst':'\xC5','angzarr':'\u237C','Aogon':'\u0104','aogon':'\u0105','Aopf':'\uD835\uDD38','aopf':'\uD835\uDD52','apacir':'\u2A6F','ap':'\u2248','apE':'\u2A70','ape':'\u224A','apid':'\u224B','apos':'\'','ApplyFunction':'\u2061','approx':'\u2248','approxeq':'\u224A','Aring':'\xC5','aring':'\xE5','Ascr':'\uD835\uDC9C','ascr':'\uD835\uDCB6','Assign':'\u2254','ast':'*','asymp':'\u2248','asympeq':'\u224D','Atilde':'\xC3','atilde':'\xE3','Auml':'\xC4','auml':'\xE4','awconint':'\u2233','awint':'\u2A11','backcong':'\u224C','backepsilon':'\u03F6','backprime':'\u2035','backsim':'\u223D','backsimeq':'\u22CD','Backslash':'\u2216','Barv':'\u2AE7','barvee':'\u22BD','barwed':'\u2305','Barwed':'\u2306','barwedge':'\u2305','bbrk':'\u23B5','bbrktbrk':'\u23B6','bcong':'\u224C','Bcy':'\u0411','bcy':'\u0431','bdquo':'\u201E','becaus':'\u2235','because':'\u2235','Because':'\u2235','bemptyv':'\u29B0','bepsi':'\u03F6','bernou':'\u212C','Bernoullis':'\u212C','Beta':'\u0392','beta':'\u03B2','beth':'\u2136','between':'\u226C','Bfr':'\uD835\uDD05','bfr':'\uD835\uDD1F','bigcap':'\u22C2','bigcirc':'\u25EF','bigcup':'\u22C3','bigodot':'\u2A00','bigoplus':'\u2A01','bigotimes':'\u2A02','bigsqcup':'\u2A06','bigstar':'\u2605','bigtriangledown':'\u25BD','bigtriangleup':'\u25B3','biguplus':'\u2A04','bigvee':'\u22C1','bigwedge':'\u22C0','bkarow':'\u290D','blacklozenge':'\u29EB','blacksquare':'\u25AA','blacktriangle':'\u25B4','blacktriangledown':'\u25BE','blacktriangleleft':'\u25C2','blacktriangleright':'\u25B8','blank':'\u2423','blk12':'\u2592','blk14':'\u2591','blk34':'\u2593','block':'\u2588','bne':'=\u20E5','bnequiv':'\u2261\u20E5','bNot':'\u2AED','bnot':'\u2310','Bopf':'\uD835\uDD39','bopf':'\uD835\uDD53','bot':'\u22A5','bottom':'\u22A5','bowtie':'\u22C8','boxbox':'\u29C9','boxdl':'\u2510','boxdL':'\u2555','boxDl':'\u2556','boxDL':'\u2557','boxdr':'\u250C','boxdR':'\u2552','boxDr':'\u2553','boxDR':'\u2554','boxh':'\u2500','boxH':'\u2550','boxhd':'\u252C','boxHd':'\u2564','boxhD':'\u2565','boxHD':'\u2566','boxhu':'\u2534','boxHu':'\u2567','boxhU':'\u2568','boxHU':'\u2569','boxminus':'\u229F','boxplus':'\u229E','boxtimes':'\u22A0','boxul':'\u2518','boxuL':'\u255B','boxUl':'\u255C','boxUL':'\u255D','boxur':'\u2514','boxuR':'\u2558','boxUr':'\u2559','boxUR':'\u255A','boxv':'\u2502','boxV':'\u2551','boxvh':'\u253C','boxvH':'\u256A','boxVh':'\u256B','boxVH':'\u256C','boxvl':'\u2524','boxvL':'\u2561','boxVl':'\u2562','boxVL':'\u2563','boxvr':'\u251C','boxvR':'\u255E','boxVr':'\u255F','boxVR':'\u2560','bprime':'\u2035','breve':'\u02D8','Breve':'\u02D8','brvbar':'\xA6','bscr':'\uD835\uDCB7','Bscr':'\u212C','bsemi':'\u204F','bsim':'\u223D','bsime':'\u22CD','bsolb':'\u29C5','bsol':'\\','bsolhsub':'\u27C8','bull':'\u2022','bullet':'\u2022','bump':'\u224E','bumpE':'\u2AAE','bumpe':'\u224F','Bumpeq':'\u224E','bumpeq':'\u224F','Cacute':'\u0106','cacute':'\u0107','capand':'\u2A44','capbrcup':'\u2A49','capcap':'\u2A4B','cap':'\u2229','Cap':'\u22D2','capcup':'\u2A47','capdot':'\u2A40','CapitalDifferentialD':'\u2145','caps':'\u2229\uFE00','caret':'\u2041','caron':'\u02C7','Cayleys':'\u212D','ccaps':'\u2A4D','Ccaron':'\u010C','ccaron':'\u010D','Ccedil':'\xC7','ccedil':'\xE7','Ccirc':'\u0108','ccirc':'\u0109','Cconint':'\u2230','ccups':'\u2A4C','ccupssm':'\u2A50','Cdot':'\u010A','cdot':'\u010B','cedil':'\xB8','Cedilla':'\xB8','cemptyv':'\u29B2','cent':'\xA2','centerdot':'\xB7','CenterDot':'\xB7','cfr':'\uD835\uDD20','Cfr':'\u212D','CHcy':'\u0427','chcy':'\u0447','check':'\u2713','checkmark':'\u2713','Chi':'\u03A7','chi':'\u03C7','circ':'\u02C6','circeq':'\u2257','circlearrowleft':'\u21BA','circlearrowright':'\u21BB','circledast':'\u229B','circledcirc':'\u229A','circleddash':'\u229D','CircleDot':'\u2299','circledR':'\xAE','circledS':'\u24C8','CircleMinus':'\u2296','CirclePlus':'\u2295','CircleTimes':'\u2297','cir':'\u25CB','cirE':'\u29C3','cire':'\u2257','cirfnint':'\u2A10','cirmid':'\u2AEF','cirscir':'\u29C2','ClockwiseContourIntegral':'\u2232','CloseCurlyDoubleQuote':'\u201D','CloseCurlyQuote':'\u2019','clubs':'\u2663','clubsuit':'\u2663','colon':':','Colon':'\u2237','Colone':'\u2A74','colone':'\u2254','coloneq':'\u2254','comma':',','commat':'@','comp':'\u2201','compfn':'\u2218','complement':'\u2201','complexes':'\u2102','cong':'\u2245','congdot':'\u2A6D','Congruent':'\u2261','conint':'\u222E','Conint':'\u222F','ContourIntegral':'\u222E','copf':'\uD835\uDD54','Copf':'\u2102','coprod':'\u2210','Coproduct':'\u2210','copy':'\xA9','COPY':'\xA9','copysr':'\u2117','CounterClockwiseContourIntegral':'\u2233','crarr':'\u21B5','cross':'\u2717','Cross':'\u2A2F','Cscr':'\uD835\uDC9E','cscr':'\uD835\uDCB8','csub':'\u2ACF','csube':'\u2AD1','csup':'\u2AD0','csupe':'\u2AD2','ctdot':'\u22EF','cudarrl':'\u2938','cudarrr':'\u2935','cuepr':'\u22DE','cuesc':'\u22DF','cularr':'\u21B6','cularrp':'\u293D','cupbrcap':'\u2A48','cupcap':'\u2A46','CupCap':'\u224D','cup':'\u222A','Cup':'\u22D3','cupcup':'\u2A4A','cupdot':'\u228D','cupor':'\u2A45','cups':'\u222A\uFE00','curarr':'\u21B7','curarrm':'\u293C','curlyeqprec':'\u22DE','curlyeqsucc':'\u22DF','curlyvee':'\u22CE','curlywedge':'\u22CF','curren':'\xA4','curvearrowleft':'\u21B6','curvearrowright':'\u21B7','cuvee':'\u22CE','cuwed':'\u22CF','cwconint':'\u2232','cwint':'\u2231','cylcty':'\u232D','dagger':'\u2020','Dagger':'\u2021','daleth':'\u2138','darr':'\u2193','Darr':'\u21A1','dArr':'\u21D3','dash':'\u2010','Dashv':'\u2AE4','dashv':'\u22A3','dbkarow':'\u290F','dblac':'\u02DD','Dcaron':'\u010E','dcaron':'\u010F','Dcy':'\u0414','dcy':'\u0434','ddagger':'\u2021','ddarr':'\u21CA','DD':'\u2145','dd':'\u2146','DDotrahd':'\u2911','ddotseq':'\u2A77','deg':'\xB0','Del':'\u2207','Delta':'\u0394','delta':'\u03B4','demptyv':'\u29B1','dfisht':'\u297F','Dfr':'\uD835\uDD07','dfr':'\uD835\uDD21','dHar':'\u2965','dharl':'\u21C3','dharr':'\u21C2','DiacriticalAcute':'\xB4','DiacriticalDot':'\u02D9','DiacriticalDoubleAcute':'\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\u02DC','diam':'\u22C4','diamond':'\u22C4','Diamond':'\u22C4','diamondsuit':'\u2666','diams':'\u2666','die':'\xA8','DifferentialD':'\u2146','digamma':'\u03DD','disin':'\u22F2','div':'\xF7','divide':'\xF7','divideontimes':'\u22C7','divonx':'\u22C7','DJcy':'\u0402','djcy':'\u0452','dlcorn':'\u231E','dlcrop':'\u230D','dollar':'$','Dopf':'\uD835\uDD3B','dopf':'\uD835\uDD55','Dot':'\xA8','dot':'\u02D9','DotDot':'\u20DC','doteq':'\u2250','doteqdot':'\u2251','DotEqual':'\u2250','dotminus':'\u2238','dotplus':'\u2214','dotsquare':'\u22A1','doublebarwedge':'\u2306','DoubleContourIntegral':'\u222F','DoubleDot':'\xA8','DoubleDownArrow':'\u21D3','DoubleLeftArrow':'\u21D0','DoubleLeftRightArrow':'\u21D4','DoubleLeftTee':'\u2AE4','DoubleLongLeftArrow':'\u27F8','DoubleLongLeftRightArrow':'\u27FA','DoubleLongRightArrow':'\u27F9','DoubleRightArrow':'\u21D2','DoubleRightTee':'\u22A8','DoubleUpArrow':'\u21D1','DoubleUpDownArrow':'\u21D5','DoubleVerticalBar':'\u2225','DownArrowBar':'\u2913','downarrow':'\u2193','DownArrow':'\u2193','Downarrow':'\u21D3','DownArrowUpArrow':'\u21F5','DownBreve':'\u0311','downdownarrows':'\u21CA','downharpoonleft':'\u21C3','downharpoonright':'\u21C2','DownLeftRightVector':'\u2950','DownLeftTeeVector':'\u295E','DownLeftVectorBar':'\u2956','DownLeftVector':'\u21BD','DownRightTeeVector':'\u295F','DownRightVectorBar':'\u2957','DownRightVector':'\u21C1','DownTeeArrow':'\u21A7','DownTee':'\u22A4','drbkarow':'\u2910','drcorn':'\u231F','drcrop':'\u230C','Dscr':'\uD835\uDC9F','dscr':'\uD835\uDCB9','DScy':'\u0405','dscy':'\u0455','dsol':'\u29F6','Dstrok':'\u0110','dstrok':'\u0111','dtdot':'\u22F1','dtri':'\u25BF','dtrif':'\u25BE','duarr':'\u21F5','duhar':'\u296F','dwangle':'\u29A6','DZcy':'\u040F','dzcy':'\u045F','dzigrarr':'\u27FF','Eacute':'\xC9','eacute':'\xE9','easter':'\u2A6E','Ecaron':'\u011A','ecaron':'\u011B','Ecirc':'\xCA','ecirc':'\xEA','ecir':'\u2256','ecolon':'\u2255','Ecy':'\u042D','ecy':'\u044D','eDDot':'\u2A77','Edot':'\u0116','edot':'\u0117','eDot':'\u2251','ee':'\u2147','efDot':'\u2252','Efr':'\uD835\uDD08','efr':'\uD835\uDD22','eg':'\u2A9A','Egrave':'\xC8','egrave':'\xE8','egs':'\u2A96','egsdot':'\u2A98','el':'\u2A99','Element':'\u2208','elinters':'\u23E7','ell':'\u2113','els':'\u2A95','elsdot':'\u2A97','Emacr':'\u0112','emacr':'\u0113','empty':'\u2205','emptyset':'\u2205','EmptySmallSquare':'\u25FB','emptyv':'\u2205','EmptyVerySmallSquare':'\u25AB','emsp13':'\u2004','emsp14':'\u2005','emsp':'\u2003','ENG':'\u014A','eng':'\u014B','ensp':'\u2002','Eogon':'\u0118','eogon':'\u0119','Eopf':'\uD835\uDD3C','eopf':'\uD835\uDD56','epar':'\u22D5','eparsl':'\u29E3','eplus':'\u2A71','epsi':'\u03B5','Epsilon':'\u0395','epsilon':'\u03B5','epsiv':'\u03F5','eqcirc':'\u2256','eqcolon':'\u2255','eqsim':'\u2242','eqslantgtr':'\u2A96','eqslantless':'\u2A95','Equal':'\u2A75','equals':'=','EqualTilde':'\u2242','equest':'\u225F','Equilibrium':'\u21CC','equiv':'\u2261','equivDD':'\u2A78','eqvparsl':'\u29E5','erarr':'\u2971','erDot':'\u2253','escr':'\u212F','Escr':'\u2130','esdot':'\u2250','Esim':'\u2A73','esim':'\u2242','Eta':'\u0397','eta':'\u03B7','ETH':'\xD0','eth':'\xF0','Euml':'\xCB','euml':'\xEB','euro':'\u20AC','excl':'!','exist':'\u2203','Exists':'\u2203','expectation':'\u2130','exponentiale':'\u2147','ExponentialE':'\u2147','fallingdotseq':'\u2252','Fcy':'\u0424','fcy':'\u0444','female':'\u2640','ffilig':'\uFB03','fflig':'\uFB00','ffllig':'\uFB04','Ffr':'\uD835\uDD09','ffr':'\uD835\uDD23','filig':'\uFB01','FilledSmallSquare':'\u25FC','FilledVerySmallSquare':'\u25AA','fjlig':'fj','flat':'\u266D','fllig':'\uFB02','fltns':'\u25B1','fnof':'\u0192','Fopf':'\uD835\uDD3D','fopf':'\uD835\uDD57','forall':'\u2200','ForAll':'\u2200','fork':'\u22D4','forkv':'\u2AD9','Fouriertrf':'\u2131','fpartint':'\u2A0D','frac12':'\xBD','frac13':'\u2153','frac14':'\xBC','frac15':'\u2155','frac16':'\u2159','frac18':'\u215B','frac23':'\u2154','frac25':'\u2156','frac34':'\xBE','frac35':'\u2157','frac38':'\u215C','frac45':'\u2158','frac56':'\u215A','frac58':'\u215D','frac78':'\u215E','frasl':'\u2044','frown':'\u2322','fscr':'\uD835\uDCBB','Fscr':'\u2131','gacute':'\u01F5','Gamma':'\u0393','gamma':'\u03B3','Gammad':'\u03DC','gammad':'\u03DD','gap':'\u2A86','Gbreve':'\u011E','gbreve':'\u011F','Gcedil':'\u0122','Gcirc':'\u011C','gcirc':'\u011D','Gcy':'\u0413','gcy':'\u0433','Gdot':'\u0120','gdot':'\u0121','ge':'\u2265','gE':'\u2267','gEl':'\u2A8C','gel':'\u22DB','geq':'\u2265','geqq':'\u2267','geqslant':'\u2A7E','gescc':'\u2AA9','ges':'\u2A7E','gesdot':'\u2A80','gesdoto':'\u2A82','gesdotol':'\u2A84','gesl':'\u22DB\uFE00','gesles':'\u2A94','Gfr':'\uD835\uDD0A','gfr':'\uD835\uDD24','gg':'\u226B','Gg':'\u22D9','ggg':'\u22D9','gimel':'\u2137','GJcy':'\u0403','gjcy':'\u0453','gla':'\u2AA5','gl':'\u2277','glE':'\u2A92','glj':'\u2AA4','gnap':'\u2A8A','gnapprox':'\u2A8A','gne':'\u2A88','gnE':'\u2269','gneq':'\u2A88','gneqq':'\u2269','gnsim':'\u22E7','Gopf':'\uD835\uDD3E','gopf':'\uD835\uDD58','grave':'`','GreaterEqual':'\u2265','GreaterEqualLess':'\u22DB','GreaterFullEqual':'\u2267','GreaterGreater':'\u2AA2','GreaterLess':'\u2277','GreaterSlantEqual':'\u2A7E','GreaterTilde':'\u2273','Gscr':'\uD835\uDCA2','gscr':'\u210A','gsim':'\u2273','gsime':'\u2A8E','gsiml':'\u2A90','gtcc':'\u2AA7','gtcir':'\u2A7A','gt':'>','GT':'>','Gt':'\u226B','gtdot':'\u22D7','gtlPar':'\u2995','gtquest':'\u2A7C','gtrapprox':'\u2A86','gtrarr':'\u2978','gtrdot':'\u22D7','gtreqless':'\u22DB','gtreqqless':'\u2A8C','gtrless':'\u2277','gtrsim':'\u2273','gvertneqq':'\u2269\uFE00','gvnE':'\u2269\uFE00','Hacek':'\u02C7','hairsp':'\u200A','half':'\xBD','hamilt':'\u210B','HARDcy':'\u042A','hardcy':'\u044A','harrcir':'\u2948','harr':'\u2194','hArr':'\u21D4','harrw':'\u21AD','Hat':'^','hbar':'\u210F','Hcirc':'\u0124','hcirc':'\u0125','hearts':'\u2665','heartsuit':'\u2665','hellip':'\u2026','hercon':'\u22B9','hfr':'\uD835\uDD25','Hfr':'\u210C','HilbertSpace':'\u210B','hksearow':'\u2925','hkswarow':'\u2926','hoarr':'\u21FF','homtht':'\u223B','hookleftarrow':'\u21A9','hookrightarrow':'\u21AA','hopf':'\uD835\uDD59','Hopf':'\u210D','horbar':'\u2015','HorizontalLine':'\u2500','hscr':'\uD835\uDCBD','Hscr':'\u210B','hslash':'\u210F','Hstrok':'\u0126','hstrok':'\u0127','HumpDownHump':'\u224E','HumpEqual':'\u224F','hybull':'\u2043','hyphen':'\u2010','Iacute':'\xCD','iacute':'\xED','ic':'\u2063','Icirc':'\xCE','icirc':'\xEE','Icy':'\u0418','icy':'\u0438','Idot':'\u0130','IEcy':'\u0415','iecy':'\u0435','iexcl':'\xA1','iff':'\u21D4','ifr':'\uD835\uDD26','Ifr':'\u2111','Igrave':'\xCC','igrave':'\xEC','ii':'\u2148','iiiint':'\u2A0C','iiint':'\u222D','iinfin':'\u29DC','iiota':'\u2129','IJlig':'\u0132','ijlig':'\u0133','Imacr':'\u012A','imacr':'\u012B','image':'\u2111','ImaginaryI':'\u2148','imagline':'\u2110','imagpart':'\u2111','imath':'\u0131','Im':'\u2111','imof':'\u22B7','imped':'\u01B5','Implies':'\u21D2','incare':'\u2105','in':'\u2208','infin':'\u221E','infintie':'\u29DD','inodot':'\u0131','intcal':'\u22BA','int':'\u222B','Int':'\u222C','integers':'\u2124','Integral':'\u222B','intercal':'\u22BA','Intersection':'\u22C2','intlarhk':'\u2A17','intprod':'\u2A3C','InvisibleComma':'\u2063','InvisibleTimes':'\u2062','IOcy':'\u0401','iocy':'\u0451','Iogon':'\u012E','iogon':'\u012F','Iopf':'\uD835\uDD40','iopf':'\uD835\uDD5A','Iota':'\u0399','iota':'\u03B9','iprod':'\u2A3C','iquest':'\xBF','iscr':'\uD835\uDCBE','Iscr':'\u2110','isin':'\u2208','isindot':'\u22F5','isinE':'\u22F9','isins':'\u22F4','isinsv':'\u22F3','isinv':'\u2208','it':'\u2062','Itilde':'\u0128','itilde':'\u0129','Iukcy':'\u0406','iukcy':'\u0456','Iuml':'\xCF','iuml':'\xEF','Jcirc':'\u0134','jcirc':'\u0135','Jcy':'\u0419','jcy':'\u0439','Jfr':'\uD835\uDD0D','jfr':'\uD835\uDD27','jmath':'\u0237','Jopf':'\uD835\uDD41','jopf':'\uD835\uDD5B','Jscr':'\uD835\uDCA5','jscr':'\uD835\uDCBF','Jsercy':'\u0408','jsercy':'\u0458','Jukcy':'\u0404','jukcy':'\u0454','Kappa':'\u039A','kappa':'\u03BA','kappav':'\u03F0','Kcedil':'\u0136','kcedil':'\u0137','Kcy':'\u041A','kcy':'\u043A','Kfr':'\uD835\uDD0E','kfr':'\uD835\uDD28','kgreen':'\u0138','KHcy':'\u0425','khcy':'\u0445','KJcy':'\u040C','kjcy':'\u045C','Kopf':'\uD835\uDD42','kopf':'\uD835\uDD5C','Kscr':'\uD835\uDCA6','kscr':'\uD835\uDCC0','lAarr':'\u21DA','Lacute':'\u0139','lacute':'\u013A','laemptyv':'\u29B4','lagran':'\u2112','Lambda':'\u039B','lambda':'\u03BB','lang':'\u27E8','Lang':'\u27EA','langd':'\u2991','langle':'\u27E8','lap':'\u2A85','Laplacetrf':'\u2112','laquo':'\xAB','larrb':'\u21E4','larrbfs':'\u291F','larr':'\u2190','Larr':'\u219E','lArr':'\u21D0','larrfs':'\u291D','larrhk':'\u21A9','larrlp':'\u21AB','larrpl':'\u2939','larrsim':'\u2973','larrtl':'\u21A2','latail':'\u2919','lAtail':'\u291B','lat':'\u2AAB','late':'\u2AAD','lates':'\u2AAD\uFE00','lbarr':'\u290C','lBarr':'\u290E','lbbrk':'\u2772','lbrace':'{','lbrack':'[','lbrke':'\u298B','lbrksld':'\u298F','lbrkslu':'\u298D','Lcaron':'\u013D','lcaron':'\u013E','Lcedil':'\u013B','lcedil':'\u013C','lceil':'\u2308','lcub':'{','Lcy':'\u041B','lcy':'\u043B','ldca':'\u2936','ldquo':'\u201C','ldquor':'\u201E','ldrdhar':'\u2967','ldrushar':'\u294B','ldsh':'\u21B2','le':'\u2264','lE':'\u2266','LeftAngleBracket':'\u27E8','LeftArrowBar':'\u21E4','leftarrow':'\u2190','LeftArrow':'\u2190','Leftarrow':'\u21D0','LeftArrowRightArrow':'\u21C6','leftarrowtail':'\u21A2','LeftCeiling':'\u2308','LeftDoubleBracket':'\u27E6','LeftDownTeeVector':'\u2961','LeftDownVectorBar':'\u2959','LeftDownVector':'\u21C3','LeftFloor':'\u230A','leftharpoondown':'\u21BD','leftharpoonup':'\u21BC','leftleftarrows':'\u21C7','leftrightarrow':'\u2194','LeftRightArrow':'\u2194','Leftrightarrow':'\u21D4','leftrightarrows':'\u21C6','leftrightharpoons':'\u21CB','leftrightsquigarrow':'\u21AD','LeftRightVector':'\u294E','LeftTeeArrow':'\u21A4','LeftTee':'\u22A3','LeftTeeVector':'\u295A','leftthreetimes':'\u22CB','LeftTriangleBar':'\u29CF','LeftTriangle':'\u22B2','LeftTriangleEqual':'\u22B4','LeftUpDownVector':'\u2951','LeftUpTeeVector':'\u2960','LeftUpVectorBar':'\u2958','LeftUpVector':'\u21BF','LeftVectorBar':'\u2952','LeftVector':'\u21BC','lEg':'\u2A8B','leg':'\u22DA','leq':'\u2264','leqq':'\u2266','leqslant':'\u2A7D','lescc':'\u2AA8','les':'\u2A7D','lesdot':'\u2A7F','lesdoto':'\u2A81','lesdotor':'\u2A83','lesg':'\u22DA\uFE00','lesges':'\u2A93','lessapprox':'\u2A85','lessdot':'\u22D6','lesseqgtr':'\u22DA','lesseqqgtr':'\u2A8B','LessEqualGreater':'\u22DA','LessFullEqual':'\u2266','LessGreater':'\u2276','lessgtr':'\u2276','LessLess':'\u2AA1','lesssim':'\u2272','LessSlantEqual':'\u2A7D','LessTilde':'\u2272','lfisht':'\u297C','lfloor':'\u230A','Lfr':'\uD835\uDD0F','lfr':'\uD835\uDD29','lg':'\u2276','lgE':'\u2A91','lHar':'\u2962','lhard':'\u21BD','lharu':'\u21BC','lharul':'\u296A','lhblk':'\u2584','LJcy':'\u0409','ljcy':'\u0459','llarr':'\u21C7','ll':'\u226A','Ll':'\u22D8','llcorner':'\u231E','Lleftarrow':'\u21DA','llhard':'\u296B','lltri':'\u25FA','Lmidot':'\u013F','lmidot':'\u0140','lmoustache':'\u23B0','lmoust':'\u23B0','lnap':'\u2A89','lnapprox':'\u2A89','lne':'\u2A87','lnE':'\u2268','lneq':'\u2A87','lneqq':'\u2268','lnsim':'\u22E6','loang':'\u27EC','loarr':'\u21FD','lobrk':'\u27E6','longleftarrow':'\u27F5','LongLeftArrow':'\u27F5','Longleftarrow':'\u27F8','longleftrightarrow':'\u27F7','LongLeftRightArrow':'\u27F7','Longleftrightarrow':'\u27FA','longmapsto':'\u27FC','longrightarrow':'\u27F6','LongRightArrow':'\u27F6','Longrightarrow':'\u27F9','looparrowleft':'\u21AB','looparrowright':'\u21AC','lopar':'\u2985','Lopf':'\uD835\uDD43','lopf':'\uD835\uDD5D','loplus':'\u2A2D','lotimes':'\u2A34','lowast':'\u2217','lowbar':'_','LowerLeftArrow':'\u2199','LowerRightArrow':'\u2198','loz':'\u25CA','lozenge':'\u25CA','lozf':'\u29EB','lpar':'(','lparlt':'\u2993','lrarr':'\u21C6','lrcorner':'\u231F','lrhar':'\u21CB','lrhard':'\u296D','lrm':'\u200E','lrtri':'\u22BF','lsaquo':'\u2039','lscr':'\uD835\uDCC1','Lscr':'\u2112','lsh':'\u21B0','Lsh':'\u21B0','lsim':'\u2272','lsime':'\u2A8D','lsimg':'\u2A8F','lsqb':'[','lsquo':'\u2018','lsquor':'\u201A','Lstrok':'\u0141','lstrok':'\u0142','ltcc':'\u2AA6','ltcir':'\u2A79','lt':'<','LT':'<','Lt':'\u226A','ltdot':'\u22D6','lthree':'\u22CB','ltimes':'\u22C9','ltlarr':'\u2976','ltquest':'\u2A7B','ltri':'\u25C3','ltrie':'\u22B4','ltrif':'\u25C2','ltrPar':'\u2996','lurdshar':'\u294A','luruhar':'\u2966','lvertneqq':'\u2268\uFE00','lvnE':'\u2268\uFE00','macr':'\xAF','male':'\u2642','malt':'\u2720','maltese':'\u2720','Map':'\u2905','map':'\u21A6','mapsto':'\u21A6','mapstodown':'\u21A7','mapstoleft':'\u21A4','mapstoup':'\u21A5','marker':'\u25AE','mcomma':'\u2A29','Mcy':'\u041C','mcy':'\u043C','mdash':'\u2014','mDDot':'\u223A','measuredangle':'\u2221','MediumSpace':'\u205F','Mellintrf':'\u2133','Mfr':'\uD835\uDD10','mfr':'\uD835\uDD2A','mho':'\u2127','micro':'\xB5','midast':'*','midcir':'\u2AF0','mid':'\u2223','middot':'\xB7','minusb':'\u229F','minus':'\u2212','minusd':'\u2238','minusdu':'\u2A2A','MinusPlus':'\u2213','mlcp':'\u2ADB','mldr':'\u2026','mnplus':'\u2213','models':'\u22A7','Mopf':'\uD835\uDD44','mopf':'\uD835\uDD5E','mp':'\u2213','mscr':'\uD835\uDCC2','Mscr':'\u2133','mstpos':'\u223E','Mu':'\u039C','mu':'\u03BC','multimap':'\u22B8','mumap':'\u22B8','nabla':'\u2207','Nacute':'\u0143','nacute':'\u0144','nang':'\u2220\u20D2','nap':'\u2249','napE':'\u2A70\u0338','napid':'\u224B\u0338','napos':'\u0149','napprox':'\u2249','natural':'\u266E','naturals':'\u2115','natur':'\u266E','nbsp':'\xA0','nbump':'\u224E\u0338','nbumpe':'\u224F\u0338','ncap':'\u2A43','Ncaron':'\u0147','ncaron':'\u0148','Ncedil':'\u0145','ncedil':'\u0146','ncong':'\u2247','ncongdot':'\u2A6D\u0338','ncup':'\u2A42','Ncy':'\u041D','ncy':'\u043D','ndash':'\u2013','nearhk':'\u2924','nearr':'\u2197','neArr':'\u21D7','nearrow':'\u2197','ne':'\u2260','nedot':'\u2250\u0338','NegativeMediumSpace':'\u200B','NegativeThickSpace':'\u200B','NegativeThinSpace':'\u200B','NegativeVeryThinSpace':'\u200B','nequiv':'\u2262','nesear':'\u2928','nesim':'\u2242\u0338','NestedGreaterGreater':'\u226B','NestedLessLess':'\u226A','NewLine':'\n','nexist':'\u2204','nexists':'\u2204','Nfr':'\uD835\uDD11','nfr':'\uD835\uDD2B','ngE':'\u2267\u0338','nge':'\u2271','ngeq':'\u2271','ngeqq':'\u2267\u0338','ngeqslant':'\u2A7E\u0338','nges':'\u2A7E\u0338','nGg':'\u22D9\u0338','ngsim':'\u2275','nGt':'\u226B\u20D2','ngt':'\u226F','ngtr':'\u226F','nGtv':'\u226B\u0338','nharr':'\u21AE','nhArr':'\u21CE','nhpar':'\u2AF2','ni':'\u220B','nis':'\u22FC','nisd':'\u22FA','niv':'\u220B','NJcy':'\u040A','njcy':'\u045A','nlarr':'\u219A','nlArr':'\u21CD','nldr':'\u2025','nlE':'\u2266\u0338','nle':'\u2270','nleftarrow':'\u219A','nLeftarrow':'\u21CD','nleftrightarrow':'\u21AE','nLeftrightarrow':'\u21CE','nleq':'\u2270','nleqq':'\u2266\u0338','nleqslant':'\u2A7D\u0338','nles':'\u2A7D\u0338','nless':'\u226E','nLl':'\u22D8\u0338','nlsim':'\u2274','nLt':'\u226A\u20D2','nlt':'\u226E','nltri':'\u22EA','nltrie':'\u22EC','nLtv':'\u226A\u0338','nmid':'\u2224','NoBreak':'\u2060','NonBreakingSpace':'\xA0','nopf':'\uD835\uDD5F','Nopf':'\u2115','Not':'\u2AEC','not':'\xAC','NotCongruent':'\u2262','NotCupCap':'\u226D','NotDoubleVerticalBar':'\u2226','NotElement':'\u2209','NotEqual':'\u2260','NotEqualTilde':'\u2242\u0338','NotExists':'\u2204','NotGreater':'\u226F','NotGreaterEqual':'\u2271','NotGreaterFullEqual':'\u2267\u0338','NotGreaterGreater':'\u226B\u0338','NotGreaterLess':'\u2279','NotGreaterSlantEqual':'\u2A7E\u0338','NotGreaterTilde':'\u2275','NotHumpDownHump':'\u224E\u0338','NotHumpEqual':'\u224F\u0338','notin':'\u2209','notindot':'\u22F5\u0338','notinE':'\u22F9\u0338','notinva':'\u2209','notinvb':'\u22F7','notinvc':'\u22F6','NotLeftTriangleBar':'\u29CF\u0338','NotLeftTriangle':'\u22EA','NotLeftTriangleEqual':'\u22EC','NotLess':'\u226E','NotLessEqual':'\u2270','NotLessGreater':'\u2278','NotLessLess':'\u226A\u0338','NotLessSlantEqual':'\u2A7D\u0338','NotLessTilde':'\u2274','NotNestedGreaterGreater':'\u2AA2\u0338','NotNestedLessLess':'\u2AA1\u0338','notni':'\u220C','notniva':'\u220C','notnivb':'\u22FE','notnivc':'\u22FD','NotPrecedes':'\u2280','NotPrecedesEqual':'\u2AAF\u0338','NotPrecedesSlantEqual':'\u22E0','NotReverseElement':'\u220C','NotRightTriangleBar':'\u29D0\u0338','NotRightTriangle':'\u22EB','NotRightTriangleEqual':'\u22ED','NotSquareSubset':'\u228F\u0338','NotSquareSubsetEqual':'\u22E2','NotSquareSuperset':'\u2290\u0338','NotSquareSupersetEqual':'\u22E3','NotSubset':'\u2282\u20D2','NotSubsetEqual':'\u2288','NotSucceeds':'\u2281','NotSucceedsEqual':'\u2AB0\u0338','NotSucceedsSlantEqual':'\u22E1','NotSucceedsTilde':'\u227F\u0338','NotSuperset':'\u2283\u20D2','NotSupersetEqual':'\u2289','NotTilde':'\u2241','NotTildeEqual':'\u2244','NotTildeFullEqual':'\u2247','NotTildeTilde':'\u2249','NotVerticalBar':'\u2224','nparallel':'\u2226','npar':'\u2226','nparsl':'\u2AFD\u20E5','npart':'\u2202\u0338','npolint':'\u2A14','npr':'\u2280','nprcue':'\u22E0','nprec':'\u2280','npreceq':'\u2AAF\u0338','npre':'\u2AAF\u0338','nrarrc':'\u2933\u0338','nrarr':'\u219B','nrArr':'\u21CF','nrarrw':'\u219D\u0338','nrightarrow':'\u219B','nRightarrow':'\u21CF','nrtri':'\u22EB','nrtrie':'\u22ED','nsc':'\u2281','nsccue':'\u22E1','nsce':'\u2AB0\u0338','Nscr':'\uD835\uDCA9','nscr':'\uD835\uDCC3','nshortmid':'\u2224','nshortparallel':'\u2226','nsim':'\u2241','nsime':'\u2244','nsimeq':'\u2244','nsmid':'\u2224','nspar':'\u2226','nsqsube':'\u22E2','nsqsupe':'\u22E3','nsub':'\u2284','nsubE':'\u2AC5\u0338','nsube':'\u2288','nsubset':'\u2282\u20D2','nsubseteq':'\u2288','nsubseteqq':'\u2AC5\u0338','nsucc':'\u2281','nsucceq':'\u2AB0\u0338','nsup':'\u2285','nsupE':'\u2AC6\u0338','nsupe':'\u2289','nsupset':'\u2283\u20D2','nsupseteq':'\u2289','nsupseteqq':'\u2AC6\u0338','ntgl':'\u2279','Ntilde':'\xD1','ntilde':'\xF1','ntlg':'\u2278','ntriangleleft':'\u22EA','ntrianglelefteq':'\u22EC','ntriangleright':'\u22EB','ntrianglerighteq':'\u22ED','Nu':'\u039D','nu':'\u03BD','num':'#','numero':'\u2116','numsp':'\u2007','nvap':'\u224D\u20D2','nvdash':'\u22AC','nvDash':'\u22AD','nVdash':'\u22AE','nVDash':'\u22AF','nvge':'\u2265\u20D2','nvgt':'>\u20D2','nvHarr':'\u2904','nvinfin':'\u29DE','nvlArr':'\u2902','nvle':'\u2264\u20D2','nvlt':'<\u20D2','nvltrie':'\u22B4\u20D2','nvrArr':'\u2903','nvrtrie':'\u22B5\u20D2','nvsim':'\u223C\u20D2','nwarhk':'\u2923','nwarr':'\u2196','nwArr':'\u21D6','nwarrow':'\u2196','nwnear':'\u2927','Oacute':'\xD3','oacute':'\xF3','oast':'\u229B','Ocirc':'\xD4','ocirc':'\xF4','ocir':'\u229A','Ocy':'\u041E','ocy':'\u043E','odash':'\u229D','Odblac':'\u0150','odblac':'\u0151','odiv':'\u2A38','odot':'\u2299','odsold':'\u29BC','OElig':'\u0152','oelig':'\u0153','ofcir':'\u29BF','Ofr':'\uD835\uDD12','ofr':'\uD835\uDD2C','ogon':'\u02DB','Ograve':'\xD2','ograve':'\xF2','ogt':'\u29C1','ohbar':'\u29B5','ohm':'\u03A9','oint':'\u222E','olarr':'\u21BA','olcir':'\u29BE','olcross':'\u29BB','oline':'\u203E','olt':'\u29C0','Omacr':'\u014C','omacr':'\u014D','Omega':'\u03A9','omega':'\u03C9','Omicron':'\u039F','omicron':'\u03BF','omid':'\u29B6','ominus':'\u2296','Oopf':'\uD835\uDD46','oopf':'\uD835\uDD60','opar':'\u29B7','OpenCurlyDoubleQuote':'\u201C','OpenCurlyQuote':'\u2018','operp':'\u29B9','oplus':'\u2295','orarr':'\u21BB','Or':'\u2A54','or':'\u2228','ord':'\u2A5D','order':'\u2134','orderof':'\u2134','ordf':'\xAA','ordm':'\xBA','origof':'\u22B6','oror':'\u2A56','orslope':'\u2A57','orv':'\u2A5B','oS':'\u24C8','Oscr':'\uD835\uDCAA','oscr':'\u2134','Oslash':'\xD8','oslash':'\xF8','osol':'\u2298','Otilde':'\xD5','otilde':'\xF5','otimesas':'\u2A36','Otimes':'\u2A37','otimes':'\u2297','Ouml':'\xD6','ouml':'\xF6','ovbar':'\u233D','OverBar':'\u203E','OverBrace':'\u23DE','OverBracket':'\u23B4','OverParenthesis':'\u23DC','para':'\xB6','parallel':'\u2225','par':'\u2225','parsim':'\u2AF3','parsl':'\u2AFD','part':'\u2202','PartialD':'\u2202','Pcy':'\u041F','pcy':'\u043F','percnt':'%','period':'.','permil':'\u2030','perp':'\u22A5','pertenk':'\u2031','Pfr':'\uD835\uDD13','pfr':'\uD835\uDD2D','Phi':'\u03A6','phi':'\u03C6','phiv':'\u03D5','phmmat':'\u2133','phone':'\u260E','Pi':'\u03A0','pi':'\u03C0','pitchfork':'\u22D4','piv':'\u03D6','planck':'\u210F','planckh':'\u210E','plankv':'\u210F','plusacir':'\u2A23','plusb':'\u229E','pluscir':'\u2A22','plus':'+','plusdo':'\u2214','plusdu':'\u2A25','pluse':'\u2A72','PlusMinus':'\xB1','plusmn':'\xB1','plussim':'\u2A26','plustwo':'\u2A27','pm':'\xB1','Poincareplane':'\u210C','pointint':'\u2A15','popf':'\uD835\uDD61','Popf':'\u2119','pound':'\xA3','prap':'\u2AB7','Pr':'\u2ABB','pr':'\u227A','prcue':'\u227C','precapprox':'\u2AB7','prec':'\u227A','preccurlyeq':'\u227C','Precedes':'\u227A','PrecedesEqual':'\u2AAF','PrecedesSlantEqual':'\u227C','PrecedesTilde':'\u227E','preceq':'\u2AAF','precnapprox':'\u2AB9','precneqq':'\u2AB5','precnsim':'\u22E8','pre':'\u2AAF','prE':'\u2AB3','precsim':'\u227E','prime':'\u2032','Prime':'\u2033','primes':'\u2119','prnap':'\u2AB9','prnE':'\u2AB5','prnsim':'\u22E8','prod':'\u220F','Product':'\u220F','profalar':'\u232E','profline':'\u2312','profsurf':'\u2313','prop':'\u221D','Proportional':'\u221D','Proportion':'\u2237','propto':'\u221D','prsim':'\u227E','prurel':'\u22B0','Pscr':'\uD835\uDCAB','pscr':'\uD835\uDCC5','Psi':'\u03A8','psi':'\u03C8','puncsp':'\u2008','Qfr':'\uD835\uDD14','qfr':'\uD835\uDD2E','qint':'\u2A0C','qopf':'\uD835\uDD62','Qopf':'\u211A','qprime':'\u2057','Qscr':'\uD835\uDCAC','qscr':'\uD835\uDCC6','quaternions':'\u210D','quatint':'\u2A16','quest':'?','questeq':'\u225F','quot':'"','QUOT':'"','rAarr':'\u21DB','race':'\u223D\u0331','Racute':'\u0154','racute':'\u0155','radic':'\u221A','raemptyv':'\u29B3','rang':'\u27E9','Rang':'\u27EB','rangd':'\u2992','range':'\u29A5','rangle':'\u27E9','raquo':'\xBB','rarrap':'\u2975','rarrb':'\u21E5','rarrbfs':'\u2920','rarrc':'\u2933','rarr':'\u2192','Rarr':'\u21A0','rArr':'\u21D2','rarrfs':'\u291E','rarrhk':'\u21AA','rarrlp':'\u21AC','rarrpl':'\u2945','rarrsim':'\u2974','Rarrtl':'\u2916','rarrtl':'\u21A3','rarrw':'\u219D','ratail':'\u291A','rAtail':'\u291C','ratio':'\u2236','rationals':'\u211A','rbarr':'\u290D','rBarr':'\u290F','RBarr':'\u2910','rbbrk':'\u2773','rbrace':'}','rbrack':']','rbrke':'\u298C','rbrksld':'\u298E','rbrkslu':'\u2990','Rcaron':'\u0158','rcaron':'\u0159','Rcedil':'\u0156','rcedil':'\u0157','rceil':'\u2309','rcub':'}','Rcy':'\u0420','rcy':'\u0440','rdca':'\u2937','rdldhar':'\u2969','rdquo':'\u201D','rdquor':'\u201D','rdsh':'\u21B3','real':'\u211C','realine':'\u211B','realpart':'\u211C','reals':'\u211D','Re':'\u211C','rect':'\u25AD','reg':'\xAE','REG':'\xAE','ReverseElement':'\u220B','ReverseEquilibrium':'\u21CB','ReverseUpEquilibrium':'\u296F','rfisht':'\u297D','rfloor':'\u230B','rfr':'\uD835\uDD2F','Rfr':'\u211C','rHar':'\u2964','rhard':'\u21C1','rharu':'\u21C0','rharul':'\u296C','Rho':'\u03A1','rho':'\u03C1','rhov':'\u03F1','RightAngleBracket':'\u27E9','RightArrowBar':'\u21E5','rightarrow':'\u2192','RightArrow':'\u2192','Rightarrow':'\u21D2','RightArrowLeftArrow':'\u21C4','rightarrowtail':'\u21A3','RightCeiling':'\u2309','RightDoubleBracket':'\u27E7','RightDownTeeVector':'\u295D','RightDownVectorBar':'\u2955','RightDownVector':'\u21C2','RightFloor':'\u230B','rightharpoondown':'\u21C1','rightharpoonup':'\u21C0','rightleftarrows':'\u21C4','rightleftharpoons':'\u21CC','rightrightarrows':'\u21C9','rightsquigarrow':'\u219D','RightTeeArrow':'\u21A6','RightTee':'\u22A2','RightTeeVector':'\u295B','rightthreetimes':'\u22CC','RightTriangleBar':'\u29D0','RightTriangle':'\u22B3','RightTriangleEqual':'\u22B5','RightUpDownVector':'\u294F','RightUpTeeVector':'\u295C','RightUpVectorBar':'\u2954','RightUpVector':'\u21BE','RightVectorBar':'\u2953','RightVector':'\u21C0','ring':'\u02DA','risingdotseq':'\u2253','rlarr':'\u21C4','rlhar':'\u21CC','rlm':'\u200F','rmoustache':'\u23B1','rmoust':'\u23B1','rnmid':'\u2AEE','roang':'\u27ED','roarr':'\u21FE','robrk':'\u27E7','ropar':'\u2986','ropf':'\uD835\uDD63','Ropf':'\u211D','roplus':'\u2A2E','rotimes':'\u2A35','RoundImplies':'\u2970','rpar':')','rpargt':'\u2994','rppolint':'\u2A12','rrarr':'\u21C9','Rrightarrow':'\u21DB','rsaquo':'\u203A','rscr':'\uD835\uDCC7','Rscr':'\u211B','rsh':'\u21B1','Rsh':'\u21B1','rsqb':']','rsquo':'\u2019','rsquor':'\u2019','rthree':'\u22CC','rtimes':'\u22CA','rtri':'\u25B9','rtrie':'\u22B5','rtrif':'\u25B8','rtriltri':'\u29CE','RuleDelayed':'\u29F4','ruluhar':'\u2968','rx':'\u211E','Sacute':'\u015A','sacute':'\u015B','sbquo':'\u201A','scap':'\u2AB8','Scaron':'\u0160','scaron':'\u0161','Sc':'\u2ABC','sc':'\u227B','sccue':'\u227D','sce':'\u2AB0','scE':'\u2AB4','Scedil':'\u015E','scedil':'\u015F','Scirc':'\u015C','scirc':'\u015D','scnap':'\u2ABA','scnE':'\u2AB6','scnsim':'\u22E9','scpolint':'\u2A13','scsim':'\u227F','Scy':'\u0421','scy':'\u0441','sdotb':'\u22A1','sdot':'\u22C5','sdote':'\u2A66','searhk':'\u2925','searr':'\u2198','seArr':'\u21D8','searrow':'\u2198','sect':'\xA7','semi':';','seswar':'\u2929','setminus':'\u2216','setmn':'\u2216','sext':'\u2736','Sfr':'\uD835\uDD16','sfr':'\uD835\uDD30','sfrown':'\u2322','sharp':'\u266F','SHCHcy':'\u0429','shchcy':'\u0449','SHcy':'\u0428','shcy':'\u0448','ShortDownArrow':'\u2193','ShortLeftArrow':'\u2190','shortmid':'\u2223','shortparallel':'\u2225','ShortRightArrow':'\u2192','ShortUpArrow':'\u2191','shy':'\xAD','Sigma':'\u03A3','sigma':'\u03C3','sigmaf':'\u03C2','sigmav':'\u03C2','sim':'\u223C','simdot':'\u2A6A','sime':'\u2243','simeq':'\u2243','simg':'\u2A9E','simgE':'\u2AA0','siml':'\u2A9D','simlE':'\u2A9F','simne':'\u2246','simplus':'\u2A24','simrarr':'\u2972','slarr':'\u2190','SmallCircle':'\u2218','smallsetminus':'\u2216','smashp':'\u2A33','smeparsl':'\u29E4','smid':'\u2223','smile':'\u2323','smt':'\u2AAA','smte':'\u2AAC','smtes':'\u2AAC\uFE00','SOFTcy':'\u042C','softcy':'\u044C','solbar':'\u233F','solb':'\u29C4','sol':'/','Sopf':'\uD835\uDD4A','sopf':'\uD835\uDD64','spades':'\u2660','spadesuit':'\u2660','spar':'\u2225','sqcap':'\u2293','sqcaps':'\u2293\uFE00','sqcup':'\u2294','sqcups':'\u2294\uFE00','Sqrt':'\u221A','sqsub':'\u228F','sqsube':'\u2291','sqsubset':'\u228F','sqsubseteq':'\u2291','sqsup':'\u2290','sqsupe':'\u2292','sqsupset':'\u2290','sqsupseteq':'\u2292','square':'\u25A1','Square':'\u25A1','SquareIntersection':'\u2293','SquareSubset':'\u228F','SquareSubsetEqual':'\u2291','SquareSuperset':'\u2290','SquareSupersetEqual':'\u2292','SquareUnion':'\u2294','squarf':'\u25AA','squ':'\u25A1','squf':'\u25AA','srarr':'\u2192','Sscr':'\uD835\uDCAE','sscr':'\uD835\uDCC8','ssetmn':'\u2216','ssmile':'\u2323','sstarf':'\u22C6','Star':'\u22C6','star':'\u2606','starf':'\u2605','straightepsilon':'\u03F5','straightphi':'\u03D5','strns':'\xAF','sub':'\u2282','Sub':'\u22D0','subdot':'\u2ABD','subE':'\u2AC5','sube':'\u2286','subedot':'\u2AC3','submult':'\u2AC1','subnE':'\u2ACB','subne':'\u228A','subplus':'\u2ABF','subrarr':'\u2979','subset':'\u2282','Subset':'\u22D0','subseteq':'\u2286','subseteqq':'\u2AC5','SubsetEqual':'\u2286','subsetneq':'\u228A','subsetneqq':'\u2ACB','subsim':'\u2AC7','subsub':'\u2AD5','subsup':'\u2AD3','succapprox':'\u2AB8','succ':'\u227B','succcurlyeq':'\u227D','Succeeds':'\u227B','SucceedsEqual':'\u2AB0','SucceedsSlantEqual':'\u227D','SucceedsTilde':'\u227F','succeq':'\u2AB0','succnapprox':'\u2ABA','succneqq':'\u2AB6','succnsim':'\u22E9','succsim':'\u227F','SuchThat':'\u220B','sum':'\u2211','Sum':'\u2211','sung':'\u266A','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','sup':'\u2283','Sup':'\u22D1','supdot':'\u2ABE','supdsub':'\u2AD8','supE':'\u2AC6','supe':'\u2287','supedot':'\u2AC4','Superset':'\u2283','SupersetEqual':'\u2287','suphsol':'\u27C9','suphsub':'\u2AD7','suplarr':'\u297B','supmult':'\u2AC2','supnE':'\u2ACC','supne':'\u228B','supplus':'\u2AC0','supset':'\u2283','Supset':'\u22D1','supseteq':'\u2287','supseteqq':'\u2AC6','supsetneq':'\u228B','supsetneqq':'\u2ACC','supsim':'\u2AC8','supsub':'\u2AD4','supsup':'\u2AD6','swarhk':'\u2926','swarr':'\u2199','swArr':'\u21D9','swarrow':'\u2199','swnwar':'\u292A','szlig':'\xDF','Tab':'\t','target':'\u2316','Tau':'\u03A4','tau':'\u03C4','tbrk':'\u23B4','Tcaron':'\u0164','tcaron':'\u0165','Tcedil':'\u0162','tcedil':'\u0163','Tcy':'\u0422','tcy':'\u0442','tdot':'\u20DB','telrec':'\u2315','Tfr':'\uD835\uDD17','tfr':'\uD835\uDD31','there4':'\u2234','therefore':'\u2234','Therefore':'\u2234','Theta':'\u0398','theta':'\u03B8','thetasym':'\u03D1','thetav':'\u03D1','thickapprox':'\u2248','thicksim':'\u223C','ThickSpace':'\u205F\u200A','ThinSpace':'\u2009','thinsp':'\u2009','thkap':'\u2248','thksim':'\u223C','THORN':'\xDE','thorn':'\xFE','tilde':'\u02DC','Tilde':'\u223C','TildeEqual':'\u2243','TildeFullEqual':'\u2245','TildeTilde':'\u2248','timesbar':'\u2A31','timesb':'\u22A0','times':'\xD7','timesd':'\u2A30','tint':'\u222D','toea':'\u2928','topbot':'\u2336','topcir':'\u2AF1','top':'\u22A4','Topf':'\uD835\uDD4B','topf':'\uD835\uDD65','topfork':'\u2ADA','tosa':'\u2929','tprime':'\u2034','trade':'\u2122','TRADE':'\u2122','triangle':'\u25B5','triangledown':'\u25BF','triangleleft':'\u25C3','trianglelefteq':'\u22B4','triangleq':'\u225C','triangleright':'\u25B9','trianglerighteq':'\u22B5','tridot':'\u25EC','trie':'\u225C','triminus':'\u2A3A','TripleDot':'\u20DB','triplus':'\u2A39','trisb':'\u29CD','tritime':'\u2A3B','trpezium':'\u23E2','Tscr':'\uD835\uDCAF','tscr':'\uD835\uDCC9','TScy':'\u0426','tscy':'\u0446','TSHcy':'\u040B','tshcy':'\u045B','Tstrok':'\u0166','tstrok':'\u0167','twixt':'\u226C','twoheadleftarrow':'\u219E','twoheadrightarrow':'\u21A0','Uacute':'\xDA','uacute':'\xFA','uarr':'\u2191','Uarr':'\u219F','uArr':'\u21D1','Uarrocir':'\u2949','Ubrcy':'\u040E','ubrcy':'\u045E','Ubreve':'\u016C','ubreve':'\u016D','Ucirc':'\xDB','ucirc':'\xFB','Ucy':'\u0423','ucy':'\u0443','udarr':'\u21C5','Udblac':'\u0170','udblac':'\u0171','udhar':'\u296E','ufisht':'\u297E','Ufr':'\uD835\uDD18','ufr':'\uD835\uDD32','Ugrave':'\xD9','ugrave':'\xF9','uHar':'\u2963','uharl':'\u21BF','uharr':'\u21BE','uhblk':'\u2580','ulcorn':'\u231C','ulcorner':'\u231C','ulcrop':'\u230F','ultri':'\u25F8','Umacr':'\u016A','umacr':'\u016B','uml':'\xA8','UnderBar':'_','UnderBrace':'\u23DF','UnderBracket':'\u23B5','UnderParenthesis':'\u23DD','Union':'\u22C3','UnionPlus':'\u228E','Uogon':'\u0172','uogon':'\u0173','Uopf':'\uD835\uDD4C','uopf':'\uD835\uDD66','UpArrowBar':'\u2912','uparrow':'\u2191','UpArrow':'\u2191','Uparrow':'\u21D1','UpArrowDownArrow':'\u21C5','updownarrow':'\u2195','UpDownArrow':'\u2195','Updownarrow':'\u21D5','UpEquilibrium':'\u296E','upharpoonleft':'\u21BF','upharpoonright':'\u21BE','uplus':'\u228E','UpperLeftArrow':'\u2196','UpperRightArrow':'\u2197','upsi':'\u03C5','Upsi':'\u03D2','upsih':'\u03D2','Upsilon':'\u03A5','upsilon':'\u03C5','UpTeeArrow':'\u21A5','UpTee':'\u22A5','upuparrows':'\u21C8','urcorn':'\u231D','urcorner':'\u231D','urcrop':'\u230E','Uring':'\u016E','uring':'\u016F','urtri':'\u25F9','Uscr':'\uD835\uDCB0','uscr':'\uD835\uDCCA','utdot':'\u22F0','Utilde':'\u0168','utilde':'\u0169','utri':'\u25B5','utrif':'\u25B4','uuarr':'\u21C8','Uuml':'\xDC','uuml':'\xFC','uwangle':'\u29A7','vangrt':'\u299C','varepsilon':'\u03F5','varkappa':'\u03F0','varnothing':'\u2205','varphi':'\u03D5','varpi':'\u03D6','varpropto':'\u221D','varr':'\u2195','vArr':'\u21D5','varrho':'\u03F1','varsigma':'\u03C2','varsubsetneq':'\u228A\uFE00','varsubsetneqq':'\u2ACB\uFE00','varsupsetneq':'\u228B\uFE00','varsupsetneqq':'\u2ACC\uFE00','vartheta':'\u03D1','vartriangleleft':'\u22B2','vartriangleright':'\u22B3','vBar':'\u2AE8','Vbar':'\u2AEB','vBarv':'\u2AE9','Vcy':'\u0412','vcy':'\u0432','vdash':'\u22A2','vDash':'\u22A8','Vdash':'\u22A9','VDash':'\u22AB','Vdashl':'\u2AE6','veebar':'\u22BB','vee':'\u2228','Vee':'\u22C1','veeeq':'\u225A','vellip':'\u22EE','verbar':'|','Verbar':'\u2016','vert':'|','Vert':'\u2016','VerticalBar':'\u2223','VerticalLine':'|','VerticalSeparator':'\u2758','VerticalTilde':'\u2240','VeryThinSpace':'\u200A','Vfr':'\uD835\uDD19','vfr':'\uD835\uDD33','vltri':'\u22B2','vnsub':'\u2282\u20D2','vnsup':'\u2283\u20D2','Vopf':'\uD835\uDD4D','vopf':'\uD835\uDD67','vprop':'\u221D','vrtri':'\u22B3','Vscr':'\uD835\uDCB1','vscr':'\uD835\uDCCB','vsubnE':'\u2ACB\uFE00','vsubne':'\u228A\uFE00','vsupnE':'\u2ACC\uFE00','vsupne':'\u228B\uFE00','Vvdash':'\u22AA','vzigzag':'\u299A','Wcirc':'\u0174','wcirc':'\u0175','wedbar':'\u2A5F','wedge':'\u2227','Wedge':'\u22C0','wedgeq':'\u2259','weierp':'\u2118','Wfr':'\uD835\uDD1A','wfr':'\uD835\uDD34','Wopf':'\uD835\uDD4E','wopf':'\uD835\uDD68','wp':'\u2118','wr':'\u2240','wreath':'\u2240','Wscr':'\uD835\uDCB2','wscr':'\uD835\uDCCC','xcap':'\u22C2','xcirc':'\u25EF','xcup':'\u22C3','xdtri':'\u25BD','Xfr':'\uD835\uDD1B','xfr':'\uD835\uDD35','xharr':'\u27F7','xhArr':'\u27FA','Xi':'\u039E','xi':'\u03BE','xlarr':'\u27F5','xlArr':'\u27F8','xmap':'\u27FC','xnis':'\u22FB','xodot':'\u2A00','Xopf':'\uD835\uDD4F','xopf':'\uD835\uDD69','xoplus':'\u2A01','xotime':'\u2A02','xrarr':'\u27F6','xrArr':'\u27F9','Xscr':'\uD835\uDCB3','xscr':'\uD835\uDCCD','xsqcup':'\u2A06','xuplus':'\u2A04','xutri':'\u25B3','xvee':'\u22C1','xwedge':'\u22C0','Yacute':'\xDD','yacute':'\xFD','YAcy':'\u042F','yacy':'\u044F','Ycirc':'\u0176','ycirc':'\u0177','Ycy':'\u042B','ycy':'\u044B','yen':'\xA5','Yfr':'\uD835\uDD1C','yfr':'\uD835\uDD36','YIcy':'\u0407','yicy':'\u0457','Yopf':'\uD835\uDD50','yopf':'\uD835\uDD6A','Yscr':'\uD835\uDCB4','yscr':'\uD835\uDCCE','YUcy':'\u042E','yucy':'\u044E','yuml':'\xFF','Yuml':'\u0178','Zacute':'\u0179','zacute':'\u017A','Zcaron':'\u017D','zcaron':'\u017E','Zcy':'\u0417','zcy':'\u0437','Zdot':'\u017B','zdot':'\u017C','zeetrf':'\u2128','ZeroWidthSpace':'\u200B','Zeta':'\u0396','zeta':'\u03B6','zfr':'\uD835\uDD37','Zfr':'\u2128','ZHcy':'\u0416','zhcy':'\u0436','zigrarr':'\u21DD','zopf':'\uD835\uDD6B','Zopf':'\u2124','Zscr':'\uD835\uDCB5','zscr':'\uD835\uDCCF','zwj':'\u200D','zwnj':'\u200C'};var decodeMapLegacy={'Aacute':'\xC1','aacute':'\xE1','Acirc':'\xC2','acirc':'\xE2','acute':'\xB4','AElig':'\xC6','aelig':'\xE6','Agrave':'\xC0','agrave':'\xE0','amp':'&','AMP':'&','Aring':'\xC5','aring':'\xE5','Atilde':'\xC3','atilde':'\xE3','Auml':'\xC4','auml':'\xE4','brvbar':'\xA6','Ccedil':'\xC7','ccedil':'\xE7','cedil':'\xB8','cent':'\xA2','copy':'\xA9','COPY':'\xA9','curren':'\xA4','deg':'\xB0','divide':'\xF7','Eacute':'\xC9','eacute':'\xE9','Ecirc':'\xCA','ecirc':'\xEA','Egrave':'\xC8','egrave':'\xE8','ETH':'\xD0','eth':'\xF0','Euml':'\xCB','euml':'\xEB','frac12':'\xBD','frac14':'\xBC','frac34':'\xBE','gt':'>','GT':'>','Iacute':'\xCD','iacute':'\xED','Icirc':'\xCE','icirc':'\xEE','iexcl':'\xA1','Igrave':'\xCC','igrave':'\xEC','iquest':'\xBF','Iuml':'\xCF','iuml':'\xEF','laquo':'\xAB','lt':'<','LT':'<','macr':'\xAF','micro':'\xB5','middot':'\xB7','nbsp':'\xA0','not':'\xAC','Ntilde':'\xD1','ntilde':'\xF1','Oacute':'\xD3','oacute':'\xF3','Ocirc':'\xD4','ocirc':'\xF4','Ograve':'\xD2','ograve':'\xF2','ordf':'\xAA','ordm':'\xBA','Oslash':'\xD8','oslash':'\xF8','Otilde':'\xD5','otilde':'\xF5','Ouml':'\xD6','ouml':'\xF6','para':'\xB6','plusmn':'\xB1','pound':'\xA3','quot':'"','QUOT':'"','raquo':'\xBB','reg':'\xAE','REG':'\xAE','sect':'\xA7','shy':'\xAD','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','szlig':'\xDF','THORN':'\xDE','thorn':'\xFE','times':'\xD7','Uacute':'\xDA','uacute':'\xFA','Ucirc':'\xDB','ucirc':'\xFB','Ugrave':'\xD9','ugrave':'\xF9','uml':'\xA8','Uuml':'\xDC','uuml':'\xFC','Yacute':'\xDD','yacute':'\xFD','yen':'\xA5','yuml':'\xFF'};var decodeMapNumeric={'0':'\uFFFD','128':'\u20AC','130':'\u201A','131':'\u0192','132':'\u201E','133':'\u2026','134':'\u2020','135':'\u2021','136':'\u02C6','137':'\u2030','138':'\u0160','139':'\u2039','140':'\u0152','142':'\u017D','145':'\u2018','146':'\u2019','147':'\u201C','148':'\u201D','149':'\u2022','150':'\u2013','151':'\u2014','152':'\u02DC','153':'\u2122','154':'\u0161','155':'\u203A','156':'\u0153','158':'\u017E','159':'\u0178'};var invalidReferenceCodePoints=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];var stringFromCharCode=String.fromCharCode;var object={};var hasOwnProperty=object.hasOwnProperty;var has=function(object,propertyName){return hasOwnProperty.call(object,propertyName);};var contains=function(array,value){var index=-1;var length=array.length;while(++index<length){if(array[index]==value){return true;}}return false;};var merge=function(options,defaults){if(!options){return defaults;}var result={};var key;for(key in defaults){result[key]=has(options,key)?options[key]:defaults[key];}return result;};var codePointToSymbol=function(codePoint,strict){var output='';if((codePoint>=0xD800&&codePoint<=0xDFFF)||codePoint>0x10FFFF){if(strict){parseError('character reference outside the permissible Unicode range');}return'\uFFFD';}if(has(decodeMapNumeric,codePoint)){if(strict){parseError('disallowed character reference');}return decodeMapNumeric[codePoint];}if(strict&&contains(invalidReferenceCodePoints,codePoint)){parseError('disallowed character reference');}if(codePoint>0xFFFF){codePoint-=0x10000;output+=stringFromCharCode(codePoint>>>10&0x3FF|0xD800);codePoint=0xDC00|codePoint&0x3FF;}output+=stringFromCharCode(codePoint);return output;};var hexEscape=function(symbol){return'&#x'+symbol.charCodeAt(0).toString(16).toUpperCase()+';';};var parseError=function(message){throw Error('Parse error: '+message);};var encode=function(string,options){options=merge(options,encode.options);var strict=options.strict;if(strict&&regexInvalidRawCodePoint.test(string)){parseError('forbidden code point');}var encodeEverything=options.encodeEverything;var useNamedReferences=options.useNamedReferences;var allowUnsafeSymbols=options.allowUnsafeSymbols;if(encodeEverything){string=string.replace(regexAsciiWhitelist,function(symbol){if(useNamedReferences&&has(encodeMap,symbol)){return'&'+encodeMap[symbol]+';';}return hexEscape(symbol);});if(useNamedReferences){string=string.replace(/&gt;\u20D2/g,'&nvgt;').replace(/&lt;\u20D2/g,'&nvlt;').replace(/&#x66;&#x6A;/g,'&fjlig;');}if(useNamedReferences){string=string.replace(regexEncodeNonAscii,function(string){return'&'+encodeMap[string]+';';});}}else if(useNamedReferences){if(!allowUnsafeSymbols){string=string.replace(regexEscape,function(string){return'&'+encodeMap[string]+';';});}string=string.replace(/&gt;\u20D2/g,'&nvgt;').replace(/&lt;\u20D2/g,'&nvlt;');string=string.replace(regexEncodeNonAscii,function(string){return'&'+encodeMap[string]+';';});}else if(!allowUnsafeSymbols){string=string.replace(regexEscape,hexEscape);}return string.replace(regexAstralSymbols,function($0){var high=$0.charCodeAt(0);var low=$0.charCodeAt(1);var codePoint=(high-0xD800)*0x400+low-0xDC00+0x10000;return'&#x'+codePoint.toString(16).toUpperCase()+';';}).replace(regexBmpWhitelist,hexEscape);};encode.options={'allowUnsafeSymbols':false,'encodeEverything':false,'strict':false,'useNamedReferences':false};var decode=function(html,options){options=merge(options,decode.options);var strict=options.strict;if(strict&&regexInvalidEntity.test(html)){parseError('malformed character reference');}return html.replace(regexDecode,function($0,$1,$2,$3,$4,$5,$6,$7){var codePoint;var semicolon;var hexDigits;var reference;var next;if($1){codePoint=$1;semicolon=$2;if(strict&&!semicolon){parseError('character reference was not terminated by a semicolon');}return codePointToSymbol(codePoint,strict);}if($3){hexDigits=$3;semicolon=$4;if(strict&&!semicolon){parseError('character reference was not terminated by a semicolon');}codePoint=parseInt(hexDigits,16);return codePointToSymbol(codePoint,strict);}if($5){reference=$5;if(has(decodeMap,reference)){return decodeMap[reference];}else{if(strict){parseError('named character reference was not terminated by a semicolon');}return $0;}}reference=$6;next=$7;if(next&&options.isAttributeValue){if(strict&&next=='='){parseError('`&` did not start a character reference');}return $0;}else{if(strict){parseError('named character reference was not terminated by a semicolon');}return decodeMapLegacy[reference]+(next||'');}});};decode.options={'isAttributeValue':false,'strict':false};var escape=function(string){return string.replace(regexEscape,function($0){return escapeMap[$0];});};var he={'version':'0.5.0','encode':encode,'decode':decode,'escape':escape,'unescape':decode};if(typeof define=='function'&&typeof define.amd=='object'&&define.amd){define(function(){return he;});}else if(freeExports&&!freeExports.nodeType){if(freeModule){freeModule.exports=he;}else{for(var key in he){has(he,key)&&(freeExports[key]=he[key]);}}}else{root.he=he;}}(this));
(function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,'gm')(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)('hr','\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))')('def','\\n+(?='+block.def.source+')')();block.blockquote=replace(block.blockquote)('def',block.def)();block._tag='(?!(?:'+'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code'+'|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo'+'|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b';block.html=replace(block.html)('comment',/<!--[\s\S]*?-->/)('closed',/<(tag)[\s\S]+?<\/\1>/)('closing',/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,block._tag)();block.paragraph=replace(block.paragraph)('hr',block.hr)('heading',block.heading)('lheading',block.lheading)('blockquote',block.blockquote)('tag','<'+block._tag)('def',block.def)();block.normal=merge({},block);block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/});block.gfm.paragraph=replace(block.paragraph)('(?!','(?!'+block.gfm.fences.source.replace('\\1','\\2')+'|'+block.list.source.replace('\\1','\\3')+'|')();block.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});function Lexer(options){this.tokens=[];this.tokens.links={};this.options=options||marked.defaults;this.rules=block.normal;if(this.options.gfm){if(this.options.tables){this.rules=block.tables;}else{this.rules=block.gfm;}}}Lexer.rules=block;Lexer.lex=function(src,options){var lexer=new Lexer(options);return lexer.lex(src);};Lexer.prototype.lex=function(src){src=src.replace(/\r\n|\r/g,'\n').replace(/\t/g,'	').replace(/\u00a0/g,' ').replace(/\u2424/g,'\n');return this.token(src,true);};Lexer.prototype.token=function(src,top,bq){var src=src.replace(/^ +$/gm,''),next,loose,cap,bull,b,item,space,i,l;while(src){if(cap=this.rules.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1){this.tokens.push({type:'space'});}}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm,'');this.tokens.push({type:'code',text:!this.options.pedantic?cap.replace(/\n+$/,''):cap});continue;}if(cap=this.rules.fences.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:'code',lang:cap[2],text:cap[3]});continue;}if(cap=this.rules.heading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:'heading',depth:cap[1].length,text:cap[2]});continue;}if(top&&(cap=this.rules.nptable.exec(src))){src=src.substring(cap[0].length);item={type:'table',header:cap[1].replace(/^ *| *\| *$/g,'').split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,'').split(/ *\| */),cells:cap[3].replace(/\n$/,'').split('\n')};for(i=0;i<item.align.length;i++){if(/^ *-+: *$/.test(item.align[i])){item.align[i]='right';}else if(/^ *:-+: *$/.test(item.align[i])){item.align[i]='center';}else if(/^ *:-+ *$/.test(item.align[i])){item.align[i]='left';}else{item.align[i]=null;}}for(i=0;i<item.cells.length;i++){item.cells[i]=item.cells[i].split(/ *\| */);}this.tokens.push(item);continue;}if(cap=this.rules.lheading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:'heading',depth:cap[2]==='='?1:2,text:cap[1]});continue;}if(cap=this.rules.hr.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:'hr'});continue;}if(cap=this.rules.blockquote.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:'blockquote_start'});cap=cap[0].replace(/^ *> ?/gm,'');this.token(cap,top,true);this.tokens.push({type:'blockquote_end'});continue;}if(cap=this.rules.list.exec(src)){src=src.substring(cap[0].length);bull=cap[2];this.tokens.push({type:'list_start',ordered:bull.length>1});cap=cap[0].match(this.rules.item);next=false;l=cap.length;i=0;for(;i<l;i++){item=cap[i];space=item.length;item=item.replace(/^ *([*+-]|\d+\.) +/,'');if(~item.indexOf('\n ')){space-=item.length;item=!this.options.pedantic?item.replace(new RegExp('^ {1,'+space+'}','gm'),''):item.replace(/^ {1,4}/gm,'');}if(this.options.smartLists&&i!==l-1){b=block.bullet.exec(cap[i+1])[0];if(bull!==b&&!(bull.length>1&&b.length>1)){src=cap.slice(i+1).join('\n')+src;i=l-1;}}loose=next||/\n\n(?!\s*$)/.test(item);if(i!==l-1){next=item.charAt(item.length-1)==='\n';if(!loose)loose=next;}this.tokens.push({type:loose?'loose_item_start':'list_item_start'});this.token(item,false,bq);this.tokens.push({type:'list_item_end'});}this.tokens.push({type:'list_end'});continue;}if(cap=this.rules.html.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:this.options.sanitize?'paragraph':'html',pre:cap[1]==='pre'||cap[1]==='script'||cap[1]==='style',text:cap[0]});continue;}if((!bq&&top)&&(cap=this.rules.def.exec(src))){src=src.substring(cap[0].length);this.tokens.links[cap[1].toLowerCase()]={href:cap[2],title:cap[3]};continue;}if(top&&(cap=this.rules.table.exec(src))){src=src.substring(cap[0].length);item={type:'table',header:cap[1].replace(/^ *| *\| *$/g,'').split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,'').split(/ *\| */),cells:cap[3].replace(/(?: *\| *)?\n$/,'').split('\n')};for(i=0;i<item.align.length;i++){if(/^ *-+: *$/.test(item.align[i])){item.align[i]='right';}else if(/^ *:-+: *$/.test(item.align[i])){item.align[i]='center';}else if(/^ *:-+ *$/.test(item.align[i])){item.align[i]='left';}else{item.align[i]=null;}}for(i=0;i<item.cells.length;i++){item.cells[i]=item.cells[i].replace(/^ *\| *| *\| *$/g,'').split(/ *\| */);}this.tokens.push(item);continue;}if(top&&(cap=this.rules.paragraph.exec(src))){src=src.substring(cap[0].length);this.tokens.push({type:'paragraph',text:cap[1].charAt(cap[1].length-1)==='\n'?cap[1].slice(0,-1):cap[1]});continue;}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:'text',text:cap[0]});continue;}if(src){throw newError('Infinite loop on byte: '+src.charCodeAt(0));}}return this.tokens;};var inline={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/};inline._inside=/(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;inline._href=/\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;inline.link=replace(inline.link)('inside',inline._inside)('href',inline._href)();inline.reflink=replace(inline.reflink)('inside',inline._inside)();inline.normal=merge({},inline);inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});inline.gfm=merge({},inline.normal,{escape:replace(inline.escape)('])','~|])')(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(inline.text)(']|',':~]|')('|','|https?://|')()});inline.breaks=merge({},inline.gfm,{br:replace(inline.br)('{2,}','*')(),text:replace(inline.gfm.text)('{2,}','*')()});function InlineLexer(links,options){this.options=options||marked.defaults;this.links=links;this.rules=inline.normal;this.renderer=this.options.renderer||new Renderer;this.renderer.options=this.options;if(!this.links){throw newError('Tokens array requires a `links` property.');}if(this.options.gfm){if(this.options.breaks){this.rules=inline.breaks;}else{this.rules=inline.gfm;}}else if(this.options.pedantic){this.rules=inline.pedantic;}}InlineLexer.rules=inline;InlineLexer.output=function(src,links,options){var inline=new InlineLexer(links,options);return inline.output(src);};InlineLexer.prototype.output=function(src){var out='',link,text,href,cap;while(src){if(cap=this.rules.escape.exec(src)){src=src.substring(cap[0].length);out+=cap[1];continue;}if(cap=this.rules.autolink.exec(src)){src=src.substring(cap[0].length);if(cap[2]==='@'){text=cap[1].charAt(6)===':'?this.mangle(cap[1].substring(7)):this.mangle(cap[1]);href=this.mangle('mailto:')+text;}else{text=escape(cap[1]);href=text;}out+=this.renderer.link(href,null,text);continue;}if(!this.inLink&&(cap=this.rules.url.exec(src))){src=src.substring(cap[0].length);text=escape(cap[1]);href=text;out+=this.renderer.link(href,null,text);continue;}if(cap=this.rules.tag.exec(src)){if(!this.inLink&&/^<a /i.test(cap[0])){this.inLink=true;}else if(this.inLink&&/^<\/a>/i.test(cap[0])){this.inLink=false;}src=src.substring(cap[0].length);out+=this.options.sanitize?escape(cap[0]):cap[0];continue;}if(cap=this.rules.link.exec(src)){src=src.substring(cap[0].length);this.inLink=true;out+=this.outputLink(cap,{href:cap[2],title:cap[3]});this.inLink=false;continue;}if((cap=this.rules.reflink.exec(src))||(cap=this.rules.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g,' ');link=this.links[link.toLowerCase()];if(!link||!link.href){out+=cap[0].charAt(0);src=cap[0].substring(1)+src;continue;}this.inLink=true;out+=this.outputLink(cap,link);this.inLink=false;continue;}if(cap=this.rules.strong.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.strong(this.output(cap[2]||cap[1]));continue;}if(cap=this.rules.em.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.em(this.output(cap[2]||cap[1]));continue;}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.codespan(escape(cap[2],true));continue;}if(cap=this.rules.br.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.br();continue;}if(cap=this.rules.del.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.del(this.output(cap[1]));continue;}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);out+=escape(this.smartypants(cap[0]));continue;}if(src){throw newError('Infinite loop on byte: '+src.charCodeAt(0));}}return out;};InlineLexer.prototype.outputLink=function(cap,link){var href=escape(link.href),title=link.title?escape(link.title):null;return cap[0].charAt(0)!=='!'?this.renderer.link(href,title,this.output(cap[1])):this.renderer.image(href,title,escape(cap[1]));};InlineLexer.prototype.smartypants=function(text){if(!this.options.smartypants)return text;return text.replace(/--/g,'\u2014').replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018').replace(/'/g, '\u2019').replace(/(^|[-\u2014/(\[{\u2018\s])"/g,'$1\u201c').replace(/"/g,'\u201d').replace(/\.{3}/g,'\u2026');};InlineLexer.prototype.mangle=function(text){var out='',l=text.length,i=0,ch;for(;i<l;i++){ch=text.charCodeAt(i);if(Math.random()>0.5){ch='x'+ch.toString(16);}out+='&#'+ch+';';}return out;};function Renderer(options){this.options=options||{};}Renderer.prototype.code=function(code,lang,escaped){if(this.options.highlight){var out=this.options.highlight(code,lang);if(out!=null&&out!==code){escaped=true;code=out;}}if(!lang){return'<pre><code class="hljs">'+(escaped?code:escape(code,true))+'\n</code></pre>';}return'<pre><code class="'+this.options.langPrefix+escape(lang,true)+' hljs">'+(escaped?code:escape(code,true))+'\n</code></pre>\n';};Renderer.prototype.blockquote=function(quote){return'<blockquote>\n'+quote+'</blockquote>\n';};Renderer.prototype.html=function(html){return html;};Renderer.prototype.heading=function(text,level,raw){return'<h'+level+' id="'+this.options.headerPrefix+raw.toLowerCase().replace(/[^\w]+/g,'-')+'">'+text+'</h'+level+'>\n';};Renderer.prototype.hr=function(){return this.options.xhtml?'<hr/>\n':'<hr>\n';};Renderer.prototype.list=function(body,ordered){var type=ordered?'ol':'ul';return'<'+type+'>\n'+body+'</'+type+'>\n';};Renderer.prototype.listitem=function(text){return'<li>'+text+'</li>\n';};Renderer.prototype.paragraph=function(text){return'<p>'+text+'</p>\n';};Renderer.prototype.table=function(header,body){return'<table>\n'+'<thead>\n'+header+'</thead>\n'+'<tbody>\n'+body+'</tbody>\n'+'</table>\n';};Renderer.prototype.tablerow=function(content){return'<tr>\n'+content+'</tr>\n';};Renderer.prototype.tablecell=function(content,flags){var type=flags.header?'th':'td';var tag=flags.align?'<'+type+' style="text-align:'+flags.align+'">':'<'+type+'>';return tag+content+'</'+type+'>\n';};Renderer.prototype.strong=function(text){return'<strong>'+text+'</strong>';};Renderer.prototype.em=function(text){return'<em>'+text+'</em>';};Renderer.prototype.codespan=function(text){return'<code>'+text+'</code>';};Renderer.prototype.br=function(){return this.options.xhtml?'<br/>':'<br>';};Renderer.prototype.del=function(text){return'<del>'+text+'</del>';};Renderer.prototype.link=function(href,title,text){if(this.options.sanitize){try{var prot=decodeURIComponent(unescape(href)).replace(/[^\w:]/g,'').toLowerCase();}catch(e){return'';}if(prot.indexOf('javascript:')===0||prot.indexOf('vbscript:')===0){return'';}}var out='<a href="'+href+'"';if(title){out+=' title="'+title+'"';}out+='>'+text+'</a>';return out;};Renderer.prototype.image=function(href,title,text){var out='<img src="'+href+'" alt="'+text+'"';if(title){out+=' title="'+title+'"';}out+=this.options.xhtml?'/>':'>';return out;};function Parser(options){this.tokens=[];this.token=null;this.options=options||marked.defaults;this.options.renderer=this.options.renderer||new Renderer;this.renderer=this.options.renderer;this.renderer.options=this.options;}Parser.parse=function(src,options,renderer){var parser=new Parser(options,renderer);return parser.parse(src);};Parser.prototype.parse=function(src){this.inline=new InlineLexer(src.links,this.options,this.renderer);this.tokens=src.reverse();var out='';while(this.next()){out+=this.tok();}return out;};Parser.prototype.next=function(){return this.token=this.tokens.pop();};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0;};Parser.prototype.parseText=function(){var body=this.token.text;while(this.peek().type==='text'){body+='\n'+this.next().text;}return this.inline.output(body);};Parser.prototype.tok=function(){switch(this.token.type){case'space':{return'';}case'hr':{return this.renderer.hr();}case'heading':{return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text);}case'code':{return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);}case'table':{var header='',body='',i,row,cell,flags,j;cell='';for(i=0;i<this.token.header.length;i++){flags={header:true,align:this.token.align[i]};cell+=this.renderer.tablecell(this.inline.output(this.token.header[i]),{header:true,align:this.token.align[i]});}header+=this.renderer.tablerow(cell);for(i=0;i<this.token.cells.length;i++){row=this.token.cells[i];cell='';for(j=0;j<row.length;j++){cell+=this.renderer.tablecell(this.inline.output(row[j]),{header:false,align:this.token.align[j]});}body+=this.renderer.tablerow(cell);}return this.renderer.table(header,body);}case'blockquote_start':{var body='';while(this.next().type!=='blockquote_end'){body+=this.tok();}return this.renderer.blockquote(body);}case'list_start':{var body='',ordered=this.token.ordered;while(this.next().type!=='list_end'){body+=this.tok();}return this.renderer.list(body,ordered);}case'list_item_start':{var body='';while(this.next().type!=='list_item_end'){body+=this.token.type==='text'?this.parseText():this.tok();}return this.renderer.listitem(body);}case'loose_item_start':{var body='';while(this.next().type!=='list_item_end'){body+=this.tok();}return this.renderer.listitem(body);}case'html':{var html=!this.token.pre&&!this.options.pedantic?this.inline.output(this.token.text):this.token.text;return this.renderer.html(html);}case'paragraph':{return this.renderer.paragraph(this.inline.output(this.token.text));}case'text':{return this.renderer.paragraph(this.parseText());}}};function escape(html,encode){return html.replace(!encode?/&(?!#?\w+;)/g:/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;').replace(/'/g,'&#39;');}function unescape(html){return html.replace(/&([#\w]+);/g,function(_,n){n=n.toLowerCase();if(n==='colon')return':';if(n.charAt(0)==='#'){return n.charAt(1)==='x'?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1));}return'';});}function replace(regex,opt){regex=regex.source;opt=opt||'';return function self(name,val){if(!name)return new RegExp(regex,opt);val=val.source||val;val=val.replace(/(^|[^\[])\^/g,'$1');regex=regex.replace(name,val);return self;};}function noop(){}noop.exec=noop;function merge(obj){var i=1,target,key;for(;i<arguments.length;i++){target=arguments[i];for(key in target){if(Object.prototype.hasOwnProperty.call(target,key)){obj[key]=target[key];}}}return obj;}function marked(src,opt,callback){if(callback||typeof opt==='function'){if(!callback){callback=opt;opt=null;}opt=merge({},marked.defaults,opt||{});var highlight=opt.highlight,tokens,pending,i=0;try{tokens=Lexer.lex(src,opt)}catch(e){return callback(e);}pending=tokens.length;var done=function(err){if(err){opt.highlight=highlight;return callback(err);}var out;try{out=Parser.parse(tokens,opt);}catch(e){err=e;}opt.highlight=highlight;return err?callback(err):callback(null,out);};if(!highlight||highlight.length<3){return done();}delete opt.highlight;if(!pending)return done();for(;i<tokens.length;i++){(function(token){if(token.type!=='code'){return--pending||done();}return highlight(token.text,token.lang,function(err,code){if(err)return done(err);if(code==null||code===token.text){return--pending||done();}token.text=code;token.escaped=true;--pending||done();});})(tokens[i]);}return;}try{if(opt)opt=merge({},marked.defaults,opt);return Parser.parse(Lexer.lex(src,opt),opt);}catch(e){e.message+='\nPlease report this to https://github.com/chjj/marked.';if((opt||marked.defaults).silent){return'<p>An error occured:</p><pre>'+escape(e.message+'',true)+'</pre>';}throw e;}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked;};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,smartLists:false,silent:false,highlight:null,langPrefix:'lang-',smartypants:false,headerPrefix:'',renderer:new Renderer,xhtml:false};marked.Parser=Parser;marked.parser=Parser.parse;marked.Renderer=Renderer;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;marked.parse=marked;if(typeof module!=='undefined'&&typeof exports==='object'){module.exports=marked;}else if(typeof define==='function'&&define.amd){define(function(){return marked;});}else{this.marked=marked;}}).call(function(){return this||(typeof window!=='undefined'?window:global);}());
if(typeof he!=='object'&&typeof require==='function'){var he=require('he');}var toMarkdown=function(string){var ELEMENTS=[{patterns:'p',replacement:function(str,attrs,innerHTML){return innerHTML?'\n\n'+innerHTML+'\n':'';}},{patterns:'br',type:'void',replacement:'  \n'},{patterns:'h([1-6])',replacement:function(str,hLevel,attrs,innerHTML){var hPrefix='';for(var i=0;i<hLevel;i++){hPrefix+='#';}return'\n\n'+hPrefix+' '+innerHTML+'\n';}},{patterns:'hr',type:'void',replacement:'\n\n* * *\n'},{patterns:'a',replacement:function(str,attrs,innerHTML){var href=attrs.match(attrRegExp('href')),title=attrs.match(attrRegExp('title'));return href?'['+innerHTML+']'+'('+href[1]+(title&&title[1]?' "'+title[1]+'"':'')+')':str;}},{patterns:['b','strong'],replacement:function(str,attrs,innerHTML){return innerHTML?'**'+innerHTML+'**':'';}},{patterns:['i','em'],replacement:function(str,attrs,innerHTML){return innerHTML?'_'+innerHTML+'_':'';}},{patterns:'code',replacement:function(str,attrs,innerHTML){var language='';if(attrs){var langs=attrs.match(/"lang-\S+"/);if(langs&&langs.length>0){var lang=langs[0];if(lang){var _language=lang.substring(lang.indexOf('-')+1,lang.length-1);if(_language)language=_language;}}}innerHTML=innerHTML.replace(/&lt;/g,"$-lt+$").replace(/&gt;/g,"$-gt+$");var code=he.decode(innerHTML,{'isAttributeValue':true});return innerHTML?'```'+language+'\n'+code+'```':'';}},{patterns:'img',type:'void',replacement:function(str,attrs,innerHTML){var src=attrs.match(attrRegExp('src')),alt=attrs.match(attrRegExp('alt')),title=attrs.match(attrRegExp('title'));return src?'!['+(alt&&alt[1]?alt[1]:'')+']'+'('+src[1]+(title&&title[1]?' "'+title[1]+'"':'')+')':'';}}];for(var i=0,len=ELEMENTS.length;i<len;i++){if(typeof ELEMENTS[i].patterns==='string'){string=replaceEls(string,{tag:ELEMENTS[i].patterns,replacement:ELEMENTS[i].replacement,type:ELEMENTS[i].type});}else{for(var j=0,pLen=ELEMENTS[i].patterns.length;j<pLen;j++){string=replaceEls(string,{tag:ELEMENTS[i].patterns[j],replacement:ELEMENTS[i].replacement,type:ELEMENTS[i].type});}}}function replaceEls(html,elProperties){var pattern=elProperties.type==='void'?'<'+elProperties.tag+'\\b([^>]*)\\/?>':'<'+elProperties.tag+'\\b([^>]*)>([\\s\\S]*?)<\\/'+elProperties.tag+'>',regex=new RegExp(pattern,'gi'),markdown='';if(typeof elProperties.replacement==='string'){markdown=html.replace(regex,elProperties.replacement);}else{markdown=html.replace(regex,function(str,p1,p2,p3){return elProperties.replacement.call(this,str,p1,p2,p3);});}return markdown;}function attrRegExp(attr){return new RegExp(attr+'\\s*=\\s*["\']?([^"\']*)["\']?','i');}string=string.replace(/<pre\b[^>]*>([\s\S]*?)<\/pre>/gi,function(str,innerHTML){var text=he.decode(innerHTML);text=text.replace(/^\t+/g,'  ');return'\n'+text;});string=string.replace(/^(\s{0,3}\d+)\. /g,'$1\\. ');var noChildrenRegex=/<(ul|ol)\b[^>]*>(?:(?!<ul|<ol)[\s\S])*?<\/\1>/gi;while(string.match(noChildrenRegex)){string=string.replace(noChildrenRegex,function(str){return replaceLists(str);});}function replaceLists(html){html=html.replace(/<(ul|ol)\b[^>]*>([\s\S]*?)<\/\1>/gi,function(str,listType,innerHTML){var lis=innerHTML.split('</li>');lis.splice(lis.length-1,1);for(i=0,len=lis.length;i<len;i++){if(lis[i]){var prefix=(listType==='ol')?(i+1)+".  ":"*   ";lis[i]=lis[i].replace(/\s*<li[^>]*>([\s\S]*)/i,function(str,innerHTML){innerHTML=innerHTML.replace(/^\s+/,'');innerHTML=innerHTML.replace(/\n\n/g,'\n\n	');innerHTML=innerHTML.replace(/\n([ ]*)+(\*|\d+\.) /g,'\n$1	$2 ');return prefix+innerHTML;});}lis[i]=lis[i].replace(/(.) +$/m,'$1');}return lis.join('\n');});return html.replace(/[ \t]+\n|\s+$/g,'');}var deepest=/<blockquote\b[^>]*>((?:(?!<blockquote)[\s\S])*?)<\/blockquote>/gi;while(string.match(deepest)){string=string.replace(deepest,function(str){return replaceBlockquotes(str);});}function replaceBlockquotes(html){html=html.replace(/<blockquote\b[^>]*>([\s\S]*?)<\/blockquote>/gi,function(str,inner){inner=inner.replace(/^\s+|\s+$/g,'');inner=cleanUp(inner);inner=inner.replace(/^/gm,'> ');inner=inner.replace(/^(>([ \t]{2,}>)+)/gm,'> >');return inner;});return html;}function cleanUp(string){string=string.replace(/^[\t\r\n]+|[\t\r\n]+$/g,'');string=string.replace(/\n\s+\n/g,'\n\n');string=string.replace(/\n{3,}/g,'\n\n');return string;}return cleanUp(string);};if(typeof exports==='object'){exports.toMarkdown=toMarkdown;}
;(function(){function htmlToText(html,extensions){var text=html,i;if(extensions&&extensions['preprocessing'])text=extensions['preprocessing'](text);text=text.replace(/<\s*script[^>]*>[\s\S]*?<\/script>/mig,"").replace(/<\s*style[^>]*>[\s\S]*?<\/style>/mig,"").replace(/<!--.*?-->/mig,"").replace(/<!DOCTYPE.*?>/ig,"");if(extensions&&extensions['tagreplacement'])text=extensions['tagreplacement'](text);var doubleNewlineTags=['p','h[1-6]','dl','dt','dd','ol','ul','dir','address','blockquote','center','div','hr','pre','form','textarea','table'];var singleNewlineTags=['li','del','ins','fieldset','legend','tr','th','caption','thead','tbody','tfoot'];for(i=0;i<doubleNewlineTags.length;i++){var r=RegExp('</?\\s*'+doubleNewlineTags[i]+'[^>]*>','ig');text=text.replace(r,'\n\n');}for(i=0;i<singleNewlineTags.length;i++){var r=RegExp('<\\s*'+singleNewlineTags[i]+'[^>]*>','ig');text=text.replace(r,'\n');}text=text.replace(/<\s*br[^>]*\/?\s*>/ig,'\n');text=text.replace(/(<([^>]+)>)/ig,"").replace(/\n{2,}/g,"\n\n").replace(/^\n+/,"").replace(/\n+$/,"").replace(/&([^;]+);/g,decodeHtmlEntity);if(!extensions||!extensions['allowTrailingWhitespace']){text=text.replace(/([^\n\S]+)\n/g,"\n").replace(/([^\n\S]+)$/,"");}if(extensions&&extensions['postprocessing'])text=extensions['postprocessing'](text);text=text.replace(/\$-lt\+\$/g,"<").replace(/\$-gt\+\$/g,">");return text;}function decodeHtmlEntity(m,n){var code;if(n.substr(0,1)=='#'){if(n.substr(1,1)=='x'){code=parseInt(n.substr(2),16);}else{code=parseInt(n.substr(1),10);}}else{code=ENTITIES_MAP[n];}return(code===undefined||code===NaN)?'&'+n+';':String.fromCharCode(code);}var ENTITIES_MAP={'nbsp':160,'iexcl':161,'cent':162,'pound':163,'curren':164,'yen':165,'brvbar':166,'sect':167,'uml':168,'copy':169,'ordf':170,'laquo':171,'not':172,'shy':173,'reg':174,'macr':175,'deg':176,'plusmn':177,'sup2':178,'sup3':179,'acute':180,'micro':181,'para':182,'middot':183,'cedil':184,'sup1':185,'ordm':186,'raquo':187,'frac14':188,'frac12':189,'frac34':190,'iquest':191,'Agrave':192,'Aacute':193,'Acirc':194,'Atilde':195,'Auml':196,'Aring':197,'AElig':198,'Ccedil':199,'Egrave':200,'Eacute':201,'Ecirc':202,'Euml':203,'Igrave':204,'Iacute':205,'Icirc':206,'Iuml':207,'ETH':208,'Ntilde':209,'Ograve':210,'Oacute':211,'Ocirc':212,'Otilde':213,'Ouml':214,'times':215,'Oslash':216,'Ugrave':217,'Uacute':218,'Ucirc':219,'Uuml':220,'Yacute':221,'THORN':222,'szlig':223,'agrave':224,'aacute':225,'acirc':226,'atilde':227,'auml':228,'aring':229,'aelig':230,'ccedil':231,'egrave':232,'eacute':233,'ecirc':234,'euml':235,'igrave':236,'iacute':237,'icirc':238,'iuml':239,'eth':240,'ntilde':241,'ograve':242,'oacute':243,'ocirc':244,'otilde':245,'ouml':246,'divide':247,'oslash':248,'ugrave':249,'uacute':250,'ucirc':251,'uuml':252,'yacute':253,'thorn':254,'yuml':255,'quot':34,'amp':38,'lt':60,'gt':62,'OElig':338,'oelig':339,'Scaron':352,'scaron':353,'Yuml':376,'circ':710,'tilde':732,'ensp':8194,'emsp':8195,'thinsp':8201,'zwnj':8204,'zwj':8205,'lrm':8206,'rlm':8207,'ndash':8211,'mdash':8212,'lsquo':8216,'rsquo':8217,'sbquo':8218,'ldquo':8220,'rdquo':8221,'bdquo':8222,'dagger':8224,'Dagger':8225,'permil':8240,'lsaquo':8249,'rsaquo':8250,'euro':8364};var EXPORTED_SYMBOLS=['htmlToText'];if(typeof module!=='undefined'){module.exports=htmlToText;}else{this.htmlToText=htmlToText;this.EXPORTED_SYMBOLS=EXPORTED_SYMBOLS;}}).call(function(){return this||(typeof window!=='undefined'?window:global);}());
var stopEvent=function(evt){evt=evt||window.event;if(evt.preventDefault){evt.preventDefault();evt.stopPropagation();}if(evt.returnValue)evt.returnValue=false;if(evt.cancelBubble)evt.cancelBubble=true;return false;};String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g,'');};String.prototype.lastChar=function(){return this.charAt(this.length-1);};String.prototype.fristChar=function(){return this.charAt(0);};String.prototype.toUnicode=function(){var temp,i=0,r='',len=this.length;for(;i<len;i++){temp=this.charCodeAt(i).toString(16);while(temp.length<4)temp='0'+temp;r+='\\u'+temp;}return r;};String.prototype.countOf=function(reg){if(undefined!==reg)return(this.match(reg)||[]).length;return 0;};String.prototype.countOfTab=function(){var reg=/\u0020{4}/g;return(this.match(reg)||[]).length;};String.prototype.countOfTabEnter=function(){var reg=/\u0020{4}\u000a/g;return(this.match(reg)||[]).length;};String.prototype.countOfTabInCloseTag=function(){var reg=/\u007b\u000a*\u0020{4}\u000a*\u007d/g;return(this.match(reg)||[]).length;};var tabFunc=function(evt){evt=evt||window.event;var keyCode=evt.keyCode,tab=9,enter=13,key_y=89,key_z=90;var target=evt.target,selectionStart=-1,selectionEnd=-1,tabKey='\u0020\u0020\u0020\u0020',doubleTabKey=tabKey+tabKey,enterKey='\u000a',value='',prefix='',suffix='';if(target&&target.tagName==='TEXTAREA'){selectionStart=target.selectionStart;selectionEnd=target.selectionEnd;value=target.value;if(selectionStart<0||selectionEnd<0){return stopEvent(evt);}else{prefix=value.substring(0,selectionStart);suffix=value.substring(selectionEnd);}}else{return;}if(keyCode===tab){var _value=prefix+tabKey+suffix;selectionStart+=4;selectionEnd=selectionStart;target.value=_value;target.setSelectionRange(selectionStart,selectionEnd);return stopEvent(evt);}if(keyCode===enter){var _value='',frist=prefix.trim().lastChar(),last=suffix.trim().fristChar(),count=prefix.countOf(/\u000a/g);if(('\u003b'===frist||'\u0029'===frist||'\u007b'===frist)&&'\u007d'===last){if(count===0){_value=prefix+enterKey+tabKey+enterKey+suffix;selectionStart+=5;}else if(count>0){var tabs=prefix.substring(prefix.lastIndexOf('\u000a'),selectionStart).countOfTab(),i=0,tabStr='';for(;i<tabs;++i){tabStr+=tabKey;}_value+=prefix;_value+=enterKey;_value+=tabStr;if('\u003b'!==frist){_value+=tabKey;++tabs;}if(enterKey!==suffix.fristChar()){_value+=enterKey;_value+=tabStr;}_value+=suffix;selectionStart+=1+(tabs*4);}}else{return;}selectionEnd=selectionStart;target.value=_value;target.setSelectionRange(selectionStart,selectionEnd);return stopEvent(evt);}};window.document.addEventListener('keydown',tabFunc,false);
marked.setOptions({renderer:new marked.Renderer(),gfm:true,tables:true,breaks:false,pedantic:false,sanitize:true,smartLists:true,smartypants:false});
/* ===================================================
 * bootstrap-markdown.js v2.8.0
 * http://github.com/toopay/bootstrap-markdown
 * ===================================================
 * Copyright 2013-2014 Taufan Aditya
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ========================================================== */

!function ($) {

	"use strict"; // jshint ;_;

	/* MARKDOWN CLASS DEFINITION
	 * ========================== */

	var Markdown = function (element, options) {
		// @TODO : remove this BC on next major release
		// @see : https://github.com/toopay/bootstrap-markdown/issues/109
		var opts = ['autofocus', 'savable', 'hideable', 'width',
			'height', 'resize', 'iconlibrary', 'language', 'base64url',
			'footer', 'fullscreen', 'hiddenButtons', 'disabledButtons', 'flowChart'];
		$.each(opts, function (_, opt) {
			if (typeof $(element).data(opt) !== 'undefined') {
				options = typeof options == 'object' ? options : {};
				options[opt] = $(element).data(opt)
			}
		});
		// End BC

		// Class Properties
		this.$ns = 'bootstrap-markdown';
		this.$element = $(element);
		this.$editable = {el: null, type: null, attrKeys: [], attrValues: [], content: null};
		this.$options = $.extend(true, {}, $.fn.markdown.defaults, options, this.$element.data('options'));
		this.$oldContent = null;
		this.$isPreview = false;
		this.$isFullscreen = false;
		this.$editor = null;
		//add by wpl show markdown preview
		this.$fullscreenControls = false;
		//id
		this.$localStorage = options.localStorage;

		this.$uploadMode = false;
		this.$fullPreview = null;
		this.$innerPreview = null;
		this.$imagePanel = null;
		this.$inputFile = null;
		this.$stateBar = null;
		this.$cutPaste = null;
		//registe
		this.$registPaste = false;
		//end
		this.$textarea = null;
		this.$handler = [];
		this.$callback = [];
		this.$nextTab = [];

		this.isIE = (navigator.appName == "Microsoft Internet Explorer");
		this.isIE8 = (this.isIE && navigator.appVersion.match(/8./i) == "8.");

		this.showEditor();
	};

	Markdown.prototype = {

		constructor: Markdown

		, __alterButtons: function (name, alter) {
			var handler = this.$handler, isAll = (name == 'all'), that = this;

			$.each(handler, function (k, v) {
				var halt = true;
				if (isAll) {
					halt = false;
				} else {
					halt = v.indexOf(name) < 0;
				}

				if (halt === false) {
					alter(that.$editor.find('button[data-handler="' + v + '"]'));
				}
			});
		}

		, __buildButtons: function (buttonsArray, container) {
			var i,
				ns = this.$ns,
				handler = this.$handler,
				callback = this.$callback;

			for (i = 0; i < buttonsArray.length; i++) {
				// Build each group container
				var y, btnGroups = buttonsArray[i];
				for (y = 0; y < btnGroups.length; y++) {
					// Build each button group
					var z,
						buttons = btnGroups[y].data,
						btnGroupContainer = $('<div/>', {
							'class': 'btn-group'
						});

					for (z = 0; z < buttons.length; z++) {
						var button = buttons[z],
							buttonContainer, buttonIconContainer,
							buttonHandler = ns + '-' + button.name,
							buttonIcon = this.__getIcon(button.icon),
							btnText = button.btnText ? button.btnText : '',
						//btnClass = button.btnClass ? button.btnClass : 'btn',
							tabIndex = button.tabIndex ? button.tabIndex : '-1',
							hotkey = typeof button.hotkey !== 'undefined' ? button.hotkey : '',
							hotkeyCaption = typeof jQuery.hotkeys !== 'undefined' && hotkey !== '' ? ' (' + hotkey + ')' : '';

						// Construct the button object
						buttonContainer = $('<button></button>');
						/*buttonContainer.text(' ' + this.__localize(btnText)).addClass('btn-default btn-sm').addClass(btnClass);
						 if (btnClass.match(/btn\-(primary|success|info|warning|danger|link)/)) {
						 buttonContainer.removeClass('btn-default');
						 }*/
						buttonContainer.attr({
							'type': 'button',
							'title': this.__localize(button.title) + hotkeyCaption,
							'tabindex': tabIndex,
							'data-provider': ns,
							'data-handler': buttonHandler,
							'data-hotkey': hotkey
						});
						if (button.toggle === true) {
							buttonContainer.attr('data-toggle', 'button');
						}
						buttonIconContainer = $('<span/>');
						buttonIconContainer.addClass(buttonIcon);
						buttonIconContainer.prependTo(buttonContainer);

						// Attach the button object
						btnGroupContainer.append(buttonContainer);

						// Register handler and callback
						handler.push(buttonHandler);
						callback.push(button.callback);
					}

					// Attach the button group into container dom
					container.append(btnGroupContainer);
				}
			}

			return container;
		}
		, __setListener: function () {
			// Set size and resizable Properties
			var hasRows = typeof this.$textarea.attr('rows') !== 'undefined',
				maxRows = this.$textarea.val().split("\n").length > 5 ? this.$textarea.val().split("\n").length : '5',
				rowsVal = hasRows ? this.$textarea.attr('rows') : maxRows;

			this.$textarea.attr('rows', rowsVal);
			if (this.$options.resize) {
				this.$textarea.css('resize', this.$options.resize);
			}

			this.$textarea
				.on('focus', $.proxy(this.focus, this))
				.on('keypress', $.proxy(this.keypress, this))
				.on('keyup', $.proxy(this.keyup, this))
				.on('change', $.proxy(this.change, this));

			if (this.eventSupported('keydown')) {
				this.$textarea.on('keydown', $.proxy(this.keydown, this));
			}

			// Re-attach markdown data
			this.$textarea.data('markdown', this);
		}

		, __handle: function (e) {
			var target = $(e.currentTarget),
				handler = this.$handler,
				callback = this.$callback,
				handlerName = target.attr('data-handler'),
				callbackIndex = handler.indexOf(handlerName),
				callbackHandler = callback[callbackIndex];

			// Trigger the focusin
			$(e.currentTarget).focus();

			callbackHandler(this);

			// Trigger onChange for each button handle
			this.change(this);

			// Unless it was the save handler,
			// focusin the textarea
			if (handlerName.indexOf('cmdSave') < 0) {
				this.$textarea.focus();
			}

			e.preventDefault();
		}

		, __localize: function (string) {
			var messages = $.fn.markdown.messages,
				language = this.$options.language;
			if (
				typeof messages !== 'undefined' &&
				typeof messages[language] !== 'undefined' &&
				typeof messages[language][string] !== 'undefined'
			) {
				return messages[language][string];
			}
			return string;
		}

		, __getIcon: function (src) {
			return typeof src == 'object' ? src[this.$options.iconlibrary] : src;
		}

		, setFullscreen: function (mode) {
			var $editor = this.$editor,
				$textarea = this.$textarea,
				$innerPreview = this.$innerPreview,
			//小预览窗口
				preview = $('div[data-provider="markdown-preview"]'),
			//预览按钮
				previewButton = $('button[data-handler="bootstrap-markdown-cmdPreview"]');
			if (mode) {
				if (this.$isPreview) {
					this.hidePreview();
				}
				$editor.addClass('md-fullscreen-mode');
				$('body').addClass('md-nooverflow');
				this.$options.onFullscreen(this);

				//处理流程图和序列图
				var markedRenderer = new marked.Renderer();
				markedRenderer.code = function (code, lang) {

					if (lang === "seq" || lang === "sequence") {
						return "<div class=\"sequence-diagram\">" + code + "</div>";
					}
					else if (lang === "flow") {

						return "<div class=\"flowchart\">" + code + "</div>";
					}
					else {

						return marked.Renderer.prototype.code.apply(this, arguments);
					}

				};

				$innerPreview.html(marked($textarea.val(), {renderer: markedRenderer}));
				$textarea.keyup(function (evt) {
					$innerPreview.html(marked($textarea.val()), {renderer: markedRenderer});
				});

				if (!this.isIE8) {
					if (this.$options.flowChart) {
						$innerPreview.find(".flowchart").flowChart();
					}
				}

				$textarea.scroll(function () {
					var __this = $(this).get(0),
						scrollHeight = __this.scrollHeight,
						scrollTop = __this.scrollTop;
					var __inner = $innerPreview.get(0),
						innerHeight = __inner.scrollHeight;
					var top = scrollTop * innerHeight / scrollHeight;
					$innerPreview.scrollTop(top);
				});
				//up by wpl
				if (preview) {
					preview.remove();
				}
				if (previewButton) {
					previewButton.hide();
				}
			} else {
				$editor.removeClass('md-fullscreen-mode');
				$('body').removeClass('md-nooverflow');
				//up by wpl
				if (previewButton) {
					previewButton.show();
				}
				if (this.$isPreview) {
					this.showPreview();
				}
			}

			this.$isFullscreen = mode;
			$textarea.focus();
		}, showEditor: function () {

			var instance = this,
				textarea,
				ns = this.$ns,
				container = this.$element,
				originalHeigth = container.css('height'),
				originalWidth = container.css('width'),
				editable = this.$editable,
				handler = this.$handler,
				callback = this.$callback,
				editorId = this.$editorId,
				options = this.$options,
				_fullPreview = this.$fullPreview,
				innerPreview = this.$fullPreview,
				cutPaste = this.$cutPaste,
				editor = $('<div/>', {
					'class': 'md-editor',
					click: function () {
						instance.focus();
					}
				});

			// Prepare the editor
			if (this.$editor === null) {
				// Create the panel
				var editorHeader = $('<div/>', {
					'class': 'md-header btn-toolbar'
				});

				// Merge the main & additional button groups together
				var allBtnGroups = [];
				if (options.buttons.length > 0) allBtnGroups = allBtnGroups.concat(options.buttons[0]);
				if (options.additionalButtons.length > 0) allBtnGroups = allBtnGroups.concat(options.additionalButtons[0]);

				// Reduce and/or reorder the button groups
				if (options.reorderButtonGroups.length > 0) {
					allBtnGroups = allBtnGroups
						.filter(function (btnGroup) {
							return options.reorderButtonGroups.indexOf(btnGroup.name) > -1;
						})
						.sort(function (a, b) {
							if (options.reorderButtonGroups.indexOf(a.name) < options.reorderButtonGroups.indexOf(b.name)) return -1;
							if (options.reorderButtonGroups.indexOf(a.name) > options.reorderButtonGroups.indexOf(b.name)) return 1;
							return 0;
						});
				}

				// Build the buttons
				if (allBtnGroups.length > 0) {
					editorHeader = this.__buildButtons([allBtnGroups], editorHeader);
				}

				if (options.fullscreen.enable) {
					editorHeader.append('<div class="md-controls"><a class="md-control md-control-fullscreen" href="#"><span class="' + this.__getIcon(options.fullscreen.icons.fullscreenOn) + '"></span></a></div>').on('click', '.md-control-fullscreen', function (e) {
						e.preventDefault();
						instance.setFullscreen(true);
					});
				}

				editor.append(editorHeader);

				// Wrap the textarea
				if (container.is('textarea')) {
					container.before(editor);
					textarea = container;
					textarea.addClass('md-input');
					editor.append(textarea);
				} else {
					var rawContent = (typeof toMarkdown == 'function') ? toMarkdown(container.html()) : container.html(),
						currentContent = $.trim(rawContent);
					// This is some arbitrary content that could be edited
					textarea = $('<textarea/>', {
						'class': 'md-input',
						'val': currentContent
					});

					editor.append(textarea);

					// Save the editable
					editable.el = container;
					editable.type = container.prop('tagName').toLowerCase();
					editable.content = container.html();

					$(container[0].attributes).each(function () {
						editable.attrKeys.push(this.nodeName);
						editable.attrValues.push(this.nodeValue);
					});

					// Set editor to blocked the original container
					container.replaceWith(editor);
				}

				//add by wpl
				if (options.fullscreen.enable && _fullPreview === null) {
					_fullPreview = $('<div/>', {
						'class': 'md-full-preview'
					});
					var previewBody = $('<div/>', {
						'class': 'md-full-preview-body'
					});

					innerPreview = $('<div/>', {
						'class': 'md-full-preview-inner'
					});
					previewBody.append(innerPreview);
					_fullPreview.append(previewBody);
					var leftTool = $('<div/>', {
						'class': 'md-full-preview-tool'
					});
					_fullPreview.append(leftTool);
					editor.append(_fullPreview);

					this.$innerPreview = innerPreview;
					this.$fullPreview = _fullPreview;
				}

				var editorFooter = $('<div/>', {
						'class': 'md-footer'
					}),
					createFooter = false,
					footer = '';
				// Create the footer if savable
				if (options.savable) {
					createFooter = true;
					var saveHandler = 'cmdSave';

					// Register handler and callback
					handler.push(saveHandler);
					callback.push(options.onSave);

					editorFooter.append('<button class="btn btn-success" data-provider="'
						+ ns
						+ '" data-handler="'
						+ saveHandler
						+ '"><i class="icon icon-white icon-ok"></i> '
						+ this.__localize('Save')
						+ '</button>');
				}

				if (null === cutPaste) {
					cutPaste = $('<div/>', {
						class: 'md-cut-paste',
						contenteditable: true
					});

					editor.append(cutPaste);
				}

				footer = typeof options.footer === 'function' ? options.footer(this) : options.footer;

				if ($.trim(footer) !== '') {
					createFooter = true;
					editorFooter.append(footer);
				}

				if (createFooter) editor.append(editorFooter);

				// Set width
				if (options.width && options.width !== 'inherit') {
					if (jQuery.isNumeric(options.width)) {
						editor.css('display', 'table');
						textarea.css('width', options.width + 'px');
					} else {
						editor.addClass(options.width);
					}
				}

				// Set height
				if (options.height && options.height !== 'inherit') {
					if (jQuery.isNumeric(options.height)) {
						var height = options.height;
						if (editorHeader) height = Math.max(0, height - editorHeader.outerHeight());
						if (editorFooter) height = Math.max(0, height - editorFooter.outerHeight());
						textarea.css('height', height + 'px');
					} else {
						editor.addClass(options.height);
					}
				}

				// Reference
				this.$editor = editor;
				this.$textarea = textarea;
				this.$editable = editable;
				this.$cutPaste = cutPaste;
				this.$oldContent = this.getContent();

				this.__setListener();

				// Set editor attributes, data short-hand API and listener
				this.$editor.attr('id', new Date().getTime().toString());

				this.$editor.on('click', '[data-provider="bootstrap-markdown"]', $.proxy(this.__handle, this));

				if (this.$element.is(':disabled') || this.$element.is('[readonly]')) {
					this.$editor.addClass('md-editor-disabled');
					this.disableButtons('all');
				}

				if (this.eventSupported('keydown') && typeof jQuery.hotkeys === 'object') {
					editorHeader.find('[data-provider="bootstrap-markdown"]').each(function () {
						var $button = $(this),
							hotkey = $button.attr('data-hotkey');
						if (hotkey.toLowerCase() !== '') {
							textarea.bind('keydown', hotkey, function () {
								$button.trigger('click');
								return false;
							});
						}
					});
				}

				if (options.initialstate === 'preview') {
					this.showPreview();
				} else if (options.initialstate === 'fullscreen' && options.fullscreen.enable) {
					this.setFullscreen(true);
				}

			} else {
				this.$editor.show();
			}

			if (options.autofocus) {
				this.$textarea.focus();
				this.$editor.addClass('active');
			}

			if (options.fullscreen.enable && options.fullscreen !== false && !this.$fullscreenControls) {
				this.$editor.append('\
		  <div class="md-fullscreen-controls">\
			<a href="#" class="exit-fullscreen" title="Exit fullscreen"><span class="' + this.__getIcon(options.fullscreen.icons.fullscreenOff) + '"></span></a>\
		  </div>');
				this.$fullscreenControls = true;
				this.$editor.on('click', '.exit-fullscreen', function (e) {
					e.preventDefault();
					instance.setFullscreen(false);
				});
			}

			// hide hidden buttons from options
			this.hideButtons(options.hiddenButtons);

			// disable disabled buttons from options
			this.disableButtons(options.disabledButtons);

			// Trigger the onShow hook
			options.onShow(this);

			if (!this.$registPaste) {
				this.registPaste();
				this.$registPaste = true;
			}

			return this;
		}

		, parseContent: function (val) {
			var content;

			// parse with supported markdown parser
			var val = val || this.$textarea.val();
			if (typeof markdown == 'object') {
				content = markdown.toHTML(val);
			} else if (typeof marked == 'function') {
				//处理流程图和序列图
				var markedRenderer = new marked.Renderer();
				markedRenderer.code = function (code, lang) {

					if (lang === "seq" || lang === "sequence") {
						return "<div class=\"sequence-diagram\">" + code + "</div>";
					}
					else if (lang === "flow") {

						return "<div class=\"flowchart\">" + code + "</div>";
					}
					else {

						return marked.Renderer.prototype.code.apply(this, arguments);
					}

				};
				content = marked(val, {renderer: markedRenderer});
			} else {
				content = val;
			}

			return content;
		}
		, showUpload: function (e) {
			var _this = this,
				imagePanel = this.$imagePanel,
				editor = this.$editor,
				//upload panel
				mdDialog = null,
				mdContent = null,
				mdContentHeader = null,
				mdContentBody = null,
				mdContentFooter = null,
				inputGroup = null,
				imageIcon = null,
				urlInput = null,
				cancleButton = null,
				okButton = null;
			if (this.$editor !== null && imagePanel == null) {
				imagePanel = $('<div />', {
					'class': 'md-upload modal'
				});

				mdContent = $('<div/>', {
					'class': 'modal-content'
				}).append($('<h4/>', {
					class: 'md-content-header-title title',
					text: e.__localize('Image')
				})).append($('<div/>', {
					class: 'md-content-body-danger',
					text: e.__localize('ImageTip')
				}));

				inputGroup = $('<div/>', {
					class: 'input-field'
				});
				imageIcon = $('<i/>', {
					class: 'prefix mdi-photo'
				});
				urlInput = $('<input>', {
					type: 'text',
					class: 'md-input-image-url',
					placeholder: 'http://example.com/image.jpg'
				});

				inputGroup.append(imageIcon).append(urlInput);

				mdContent.append(inputGroup);

				mdContentFooter = $('<div/>', {
					'class': 'modal-footer'
				});

				cancleButton = $('<button/>', {
					class: 'modal-action waves-effect waves-green btn-flat',
					type: 'button',
					text: e.__localize('Cancle')
				});

				cancleButton.bind('click', function () {
					_this.hideImagePanel();
				});

				okButton = $('<button/>', {
					class: 'modal-action waves-effect waves-green btn-flat',
					text: e.__localize('Insert')
				});

				okButton.bind('click', function () {
					var link = urlInput.val();
					if (null === link || '' === link) {
						alert(_this.__localize('ImageInputTip'));
						return false;
					}
					_this.setImageLink(link);
					if (_this.$isFullscreen) {
						_this.$innerPreview.html(marked(_this.$textarea.val()));
					}
					return false;
				});

				mdContentFooter.append(cancleButton).append(okButton);

				imagePanel.append(mdContent).append(mdContentFooter);

				editor.append(imagePanel);

				this.$imagePanel = imagePanel;
			}

			imagePanel.openModal();
		}
		, xhrImageUpload: function (base64) {
			var _this = this,
				base64Url = this.$options.base64url;
			if (null === base64Url || '' === base64Url)
				return;
			if (base64.indexOf("data:image/png;base64") !== -1) {
				var imageFormData = new FormData();
				imageFormData.append("base64Data", base64);
				var xhr = new XMLHttpRequest();
				xhr.onreadystatechange = function () {
					if (xhr.readyState === 4 && xhr.status === 200) {
						var link = xhr.responseText;
						if ('' !== link) {
							_this.setImageLink(link);
						}
					}
				};
				xhr.upload.onerror = function () {
					alert(_this.__localize('ImagePasteField'));
				};
				xhr.open("POST", base64Url, true);
				xhr.setRequestHeader("Cache-Control", "no-cache");
				xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
				// xhr.send(imageFormData);
			}
		}
		, setImageLink: function (link) {
			// Give ![] surround the selection and prepend the image link
			var _this = this, chunk, cursor, instance = this, selected = instance.getSelection(), content = instance.getContent(), _link = link;

			if (selected.length === 0) {
				// Give extra word
				chunk = instance.__localize('enter image description here');
			} else {
				chunk = selected.text;
			}

			//link = prompt(e.__localize('Insert Image Hyperlink'), 'http://');

			if (_link !== null && _link !== '' && _link !== 'http://' && (_link.substr(0, 4) === 'http' || _link.substr(0, 21) === 'data:image/png;base64')) {
				var sanitizedLink = $('<div>' + _link + '</div>').text();

				// transform selection and set the cursor into chunked text
				instance.replaceSelection('![' + chunk + '](' + sanitizedLink + ' "' + instance.__localize('enter image title here') + '")');
				cursor = selected.start + 2;

				// Set the next tab
				instance.setNextTab(instance.__localize('enter image title here'));

				// Set the cursor
				instance.setSelection(cursor, cursor + chunk.length);
				if (_this.$isFullscreen) {
					_this.$innerPreview.html(marked(_this.$textarea.val()));
				}
				this.hideImagePanel();
			}
		}
		, addLink: function(link, isAttachment, name){
			var chunk, cursor, instance = this, selected = instance.getSelection(), content = instance.getContent();

			if (typeof(name) !== 'string' || name === '') {
				if (typeof(isAttachment) !== 'undefined' && isAttachment === true) {
					chunk = instance.__localize('enter attachment name here');
				} else {
					chunk = instance.__localize('enter link description here');
				}
			} else {
				chunk = name;
			}

			var sanitizedLink = $('<div>' + link + '</div>').text();
			instance.replaceSelection('[' + chunk + '](' + sanitizedLink + ')');
			cursor = selected.start + 1;
			// Set the cursor
			instance.setSelection(cursor, cursor + chunk.length);
		}
		, hideImagePanel: function () {
			var imagePanel = this.$imagePanel,
				textarea = this.$textarea;
			if (null !== imagePanel) {
				textarea.focus();
				imagePanel.find('input.md-input-insert-image').val('');
				imagePanel.find('input.md-input-image-url').val('');
				imagePanel.closeModal();
				this.$uploadMode = false;
			}
		}
		, registPaste: function () {
			var _this = this,
				cutPaste = this.$cutPaste,
				editor = this.$editor,
				timeStamp = null,
				browser = navigator.userAgent.toLowerCase();
			if (null === cutPaste)
				return;

			var firefox = false,
				chrome = true,
				trident = false;

			if (/firefox/i.test(browser)) {
				editor.keypress(function (event) {
					_this.pasteFunc(event, firefox)
				});
				//这里处理Firefox粘贴处理
				editor.get(0).addEventListener('paste', function (event) {
					var event = event || window.event;
					var clipboardData = event.clipboardData || window.clipboardData;
					var text = clipboardData.getData("text");
					if (text) {
						var selection = _this.getSelection().start;
						_this.replaceSelection(text);
						_this.setSelection(selection + text.length, selection + text.length);
						if (event.preventDefault) {
							event.preventDefault();
							event.stopPropagation();
						}
						if (event.returnValue)
							event.returnValue = false;
						if (event.cancelBubble)
							event.cancelBubble = true;
						return false;
					}
				}, true);
			} else if (/chrome/i.test(browser) && /webkit/i.test(browser) && /mozilla/i.test(browser)) {
				chrome = true;
				editor.on('paste', function (event) {
					_this.pasteFunc(event, chrome);
				});
			} else if (/trident/i.test(browser)) {
				editor.keydown(function (event) {
					_this.pasteFunc(event, trident)
				});
			}

		}
		, pasteFunc: function (event, chrome) {
			var _this = this,
				cutPaste = this.$cutPaste,
				textarea = this.$textarea,
				uploadMode = this.$uploadMode;

			if (!chrome) {
				//防止一个粘贴BUG
				if (uploadMode)
					return;
			}
			if (!chrome && (event.ctrlKey || event.metaKey) && (event.keyCode === 86 || event.key === 'v')) {
				cutPaste.focus();
				setTimeout(function () {
					var imgs = cutPaste.find('img'), img = null, base64 = null;
					textarea.focus();
					if (imgs && imgs.length > 0) {
						img = imgs[0];
						base64 = img.src;
						if (base64 && '' !== base64) {
							_this.xhrImageUpload(base64);
						}
						imgs.remove();
					}
					var text = '';
					//这里不作Firefox粘贴处理
					if (window.clipboardData) {
						text = window.clipboardData.getData('Text');
						if (text) {
							var selection = _this.getSelection().start;
							_this.replaceSelection(text);
							_this.setSelection(selection + text.length, selection + text.length);
						}
					}
					cutPaste.empty();
				}, 10);
			} else if (chrome) {
				var clipboardData, items, item, _i = 0, _length, _ref;
				if (((_ref = event.originalEvent) !== null ? _ref.clipboardData : void 0) !== null) {
					clipboardData = event.originalEvent.clipboardData;
					if (items = clipboardData.items) {
						_length = items.length;
						for (; _i < _length; ++_i) {
							item = items[_i];
							if (item && item.type.match(/^image\//)) {
								var blob = item.getAsFile(), reader = new FileReader(), base64 = null;
								reader.onload = function (evt) {
									base64 = evt.target.result;
									if (base64 && '' !== base64) {
										_this.xhrImageUpload(base64);
									}
								};
								reader.readAsDataURL(blob);
							}
						}
					}
				}
			}
		}
		, showPreview: function () {
			var options = this.$options,
				container = this.$textarea,
				afterContainer = container.next(),
				replacementContainer = $('<div/>', {'class': 'md-preview', 'data-provider': 'markdown-preview'}),
				content,
				callbackContent;


			// Give flag that tell the editor enter preview mode
			this.$isPreview = true;
			// Disable all buttons
			this.disableButtons('all').enableButtons('cmdPreview');

			// Try to get the content from callback
			callbackContent = options.onPreview(this);
			// Set the content based from the callback content if string otherwise parse value from textarea
			content = typeof callbackContent == 'string' ? callbackContent : this.parseContent();

			// Build preview element
			replacementContainer.html(content);

			if (!this.isIE8) {
				if (this.$options.flowChart) {
					replacementContainer.find(".flowchart").flowChart();
				}
			}
			if (afterContainer && afterContainer.attr('class') == 'md-footer') {
				// If there is footer element, insert the preview container before it
				replacementContainer.insertBefore(afterContainer);
			} else {
				// Otherwise, just append it after textarea
				container.parent().append(replacementContainer);
			}

			// Set the preview element dimensions
			replacementContainer.css({
				//width: container.outerWidth() + 'px',
				width: 'inherit',
				height: container.outerHeight() + 'px'
			});

			if (this.$options.resize) {
				replacementContainer.css('resize', this.$options.resize);
			}

			// Hide the last-active textarea
			container.hide();

			// Attach the editor instances
			replacementContainer.data('markdown', this);

			if (this.$element.is(':disabled') || this.$element.is('[readonly]')) {
				this.$editor.addClass('md-editor-disabled');
				this.disableButtons('all');
			}
			return this;
		}

		, hidePreview: function () {
			// Give flag that tell the editor quit preview mode
			this.$isPreview = false;

			// Obtain the preview container
			var container = this.$editor.find('div[data-provider="markdown-preview"]');

			//

			// Remove the preview container
			container.remove();

			// Enable all buttons
			this.enableButtons('all');
			// Disable configured disabled buttons
			this.disableButtons(this.$options.disabledButtons);

			// Back to the editor
			this.$textarea.show();
			this.__setListener();

			return this;
		}

		, isDirty: function () {
			return this.$oldContent != this.getContent();
		}

		, getContent: function () {
			return this.$textarea.val();
		}

		, setContent: function (content) {
			this.$textarea.val(content);

			return this;
		}

		, findSelection: function (chunk) {
			var content = this.getContent(), startChunkPosition;

			if (startChunkPosition = content.indexOf(chunk), startChunkPosition >= 0 && chunk.length > 0) {
				var oldSelection = this.getSelection(), selection;

				this.setSelection(startChunkPosition, startChunkPosition + chunk.length);
				selection = this.getSelection();

				this.setSelection(oldSelection.start, oldSelection.end);

				return selection;
			} else {
				return null;
			}
		}
		, getSelection: function () {

			var e = this.$textarea[0];

			return (

			('selectionStart' in e && function () {
				var l = e.selectionEnd - e.selectionStart;
				return {
					start: e.selectionStart,
					end: e.selectionEnd,
					length: l,
					text: e.value.substr(e.selectionStart, l)
				};
			}) ||

				/* browser not supported */
			function () {
				return null;
			}

			)();

		}

		, setSelection: function (start, end) {

			var e = this.$textarea[0];

			return (

			('selectionStart' in e && function () {
				e.selectionStart = start;
				e.selectionEnd = end;
				return;
			}) ||

				/* browser not supported */
			function () {
				return null;
			}

			)();

		}

		, replaceSelection: function (text) {

			var e = this.$textarea[0];

			return (

			('selectionStart' in e && function () {
				e.value = e.value.substr(0, e.selectionStart) + text + e.value.substr(e.selectionEnd, e.value.length);
				// Set cursor to the last replacement end
				e.selectionStart = e.value.length;
				return this;
			}) ||

				/* browser not supported */
			function () {
				e.value += text;
				return jQuery(e);
			}

			)();
		}

		, getNextTab: function () {
			// Shift the nextTab
			if (this.$nextTab.length === 0) {
				return null;
			} else {
				var nextTab, tab = this.$nextTab.shift();

				if (typeof tab == 'function') {
					nextTab = tab();
				} else if (typeof tab == 'object' && tab.length > 0) {
					nextTab = tab;
				}

				return nextTab;
			}
		}

		, setNextTab: function (start, end) {
			// Push new selection into nextTab collections
			if (typeof start == 'string') {
				var that = this;
				this.$nextTab.push(function () {
					return that.findSelection(start);
				});
			} else if (typeof start == 'number' && typeof end == 'number') {
				var oldSelection = this.getSelection();

				this.setSelection(start, end);
				this.$nextTab.push(this.getSelection());

				this.setSelection(oldSelection.start, oldSelection.end);
			}

			return;
		}

		, __parseButtonNameParam: function (nameParam) {
			var buttons = [];

			if (typeof nameParam == 'string') {
				buttons = nameParam.split(',')
			} else {
				buttons = nameParam;
			}

			return buttons;
		}

		, enableButtons: function (name) {
			var buttons = this.__parseButtonNameParam(name),
				that = this;

			$.each(buttons, function (i, v) {
				that.__alterButtons(buttons[i], function (el) {
					el.removeAttr('disabled');
				});
			});

			return this;
		}

		, disableButtons: function (name) {
			var buttons = this.__parseButtonNameParam(name),
				that = this;

			$.each(buttons, function (i, v) {
				that.__alterButtons(buttons[i], function (el) {
					el.attr('disabled', 'disabled');
				});
			});

			return this;
		}

		, hideButtons: function (name) {
			var buttons = this.__parseButtonNameParam(name),
				that = this;

			$.each(buttons, function (i, v) {
				that.__alterButtons(buttons[i], function (el) {
					el.addClass('hidden');
				});
			});

			return this;
		}

		, showButtons: function (name) {
			var buttons = this.__parseButtonNameParam(name),
				that = this;

			$.each(buttons, function (i, v) {
				that.__alterButtons(buttons[i], function (el) {
					el.removeClass('hidden');
				});
			});

			return this;
		}

		, eventSupported: function (eventName) {
			var isSupported = eventName in this.$element;
			if (!isSupported) {
				this.$element.setAttribute(eventName, 'return;');
				isSupported = typeof this.$element[eventName] === 'function';
			}
			return isSupported;
		}

		, keyup: function (e) {
			var blocked = false;
			switch (e.keyCode) {
				case 40: // down arrow
				case 38: // up arrow
				case 16: // shift
				case 17: // ctrl
				case 18: // alt
					break;

				case 9: // tab
					/*var nextTab;
					 if (nextTab = this.getNextTab(), nextTab !== null) {
					 // Get the nextTab if exists
					 var that = this;
					 setTimeout(function () {
					 that.setSelection(nextTab.start, nextTab.end);
					 }, 500);

					 blocked = true;
					 } else {
					 // The next tab memory contains nothing...
					 // check the cursor position to determine tab action
					 var cursor = this.getSelection();

					 if (cursor.start == cursor.end && cursor.end == this.getContent().length) {
					 // The cursor already reach the end of the content
					 blocked = false;
					 } else {
					 // Put the cursor to the end
					 this.setSelection(this.getContent().length, this.getContent().length);

					 blocked = true;
					 }
					 }*/

					break;

				case 13: // enter
					blocked = false;
					break;
				case 27: // escape
					if (this.$isFullscreen) this.setFullscreen(false);
					blocked = false;
					break;

				default:
					blocked = false;
			}

			if (blocked) {
				e.stopPropagation();
				e.preventDefault();
			}

			this.$options.onChange(this);
		}

		, change: function (e) {
			this.$options.onChange(this);
			return this;
		}

		, focus: function (e) {
			var options = this.$options,
				isHideable = options.hideable,
				editor = this.$editor;

			editor.addClass('active');

			// Blur other markdown(s)
			$(document).find('.md-editor').each(function () {
				if ($(this).attr('id') !== editor.attr('id')) {
					var attachedMarkdown;

					if (attachedMarkdown = $(this).find('textarea').data('markdown'),
						attachedMarkdown === null) {
						attachedMarkdown = $(this).find('div[data-provider="markdown-preview"]').data('markdown');
					}

					if (attachedMarkdown) {
						attachedMarkdown.blur();
					}
				}
			});

			// Trigger the onFocus hook
			options.onFocus(this);

			return this;
		}

		, blur: function (e) {
			var options = this.$options,
				isHideable = options.hideable,
				editor = this.$editor,
				editable = this.$editable;

			if (editor.hasClass('active') || this.$element.parent().length === 0) {
				editor.removeClass('active');

				if (isHideable) {
					// Check for editable elements
					if (editable.el !== null) {
						// Build the original element
						var oldElement = $('<' + editable.type + '/>'),
							content = this.getContent(),
							currentContent = (typeof markdown == 'object') ? markdown.toHTML(content) : content;

						$(editable.attrKeys).each(function (k, v) {
							oldElement.attr(editable.attrKeys[k], editable.attrValues[k]);
						});

						// Get the editor content
						oldElement.html(currentContent);

						editor.replaceWith(oldElement);
					} else {
						editor.hide();
					}
				}

				// Trigger the onBlur hook
				options.onBlur(this);
			}

			return this;
		}
	};

	/* MARKDOWN PLUGIN DEFINITION
	 * ========================== */

	var old = $.fn.markdown;

	$.fn.markdown = function (option) {
		return this.each(function () {
			var $this = $(this)
				, data = $this.data('markdown')
				, options = typeof option == 'object' && option;
			if (!data) $this.data('markdown', (data = new Markdown(this, options)))
		})
	};

	$.fn.markdown.messages = {};

	$.fn.markdown.defaults = {
		/* Editor Properties */
		autofocus: true,  //是否自动焦点到编辑器
		hideable: false,
		savable: false,
		width: 'inherit',
		height: 'inherit',
		resize: 'none',
		iconlibrary: 'mdi',
		language: 'en',  //默认国际化语言
		initialstate: 'editor',
		imgurl: '',
		base64url: '',
		localStorage: '',
		flowChart: false,//	flowChart.js 只支持 IE9+
		/* Buttons Properties */
		buttons: [
			[{
				name: 'groupFont',
				data: [{
					name: 'cmdBold',
					hotkey: 'Ctrl+B',
					title: 'Bold',
					icon: {glyph: 'gly gly-bold', fa: 'fa fa-bold', 'fa-3': 'icon-bold', mdi: 'mdi-format-bold'},
					callback: function (e) {
						// Give/remove ** surround the selection
						var chunk, cursor, selected = e.getSelection(), content = e.getContent();

						if (selected.length === 0) {
							// Give extra word
							chunk = e.__localize('strong text');
						} else {
							chunk = selected.text;
						}

						// transform selection and set the cursor into chunked text
						if (content.substr(selected.start - 2, 2) === '**'
							&& content.substr(selected.end, 2) === '**') {
							e.setSelection(selected.start - 2, selected.end + 2);
							e.replaceSelection(chunk);
							cursor = selected.start - 2;
						} else {
							e.replaceSelection('**' + chunk + '**');
							cursor = selected.start + 2;
						}

						// Set the cursor
						e.setSelection(cursor, cursor + chunk.length);
					}
				}, {
					name: 'cmdItalic',
					title: 'Italic',
					hotkey: 'Ctrl+I',
					icon: {glyph: 'gly gly-italic', fa: 'fa fa-italic', 'fa-3': 'icon-italic', mdi: 'mdi-format-italic'},
					callback: function (e) {
						// Give/remove * surround the selection
						var chunk, cursor, selected = e.getSelection(), content = e.getContent();

						if (selected.length === 0) {
							// Give extra word
							chunk = e.__localize('emphasized text');
						} else {
							chunk = selected.text;
						}

						// transform selection and set the cursor into chunked text
						if (content.substr(selected.start - 1, 1) === '_'
							&& content.substr(selected.end, 1) === '_') {
							e.setSelection(selected.start - 1, selected.end + 1);
							e.replaceSelection(chunk);
							cursor = selected.start - 1;
						} else {
							e.replaceSelection('_' + chunk + '_');
							cursor = selected.start + 1;
						}

						// Set the cursor
						e.setSelection(cursor, cursor + chunk.length);
					}
				}, {
					name: 'cmdHeading',
					title: 'Heading',
					hotkey: 'Ctrl+H',
					icon: {glyph: 'gly gly-header', fa: 'fa fa-header', 'fa-3': 'icon-font', mdi: 'mdi-view-compact'},
					callback: function (e) {
						// Append/remove ### surround the selection
						var chunk, cursor, selected = e.getSelection(), content = e.getContent(), pointer = 4, prevChar;

						if (selected.length === 0) {
							// Give extra word
							chunk = e.__localize('heading text');
						} else {
							chunk = selected.text + '\n';
						}

						// transform selection and set the cursor into chunked text
						if (content.substr(selected.start - pointer, pointer) === '### '
							|| content.substr(selected.start - (--pointer), pointer) === '###') {
							e.setSelection(selected.start - pointer, selected.end);
							e.replaceSelection(chunk);
							cursor = selected.start - pointer;
						} else if (selected.start > 0 && (prevChar = content.substr(selected.start - 1, 1), !!prevChar && prevChar != '\n')) {
							e.replaceSelection('\n\n### ' + chunk);
							cursor = selected.start + 6;
						} else {
							// Empty string before element
							e.replaceSelection('### ' + chunk);
							cursor = selected.start + 4;
						}

						// Set the cursor
						e.setSelection(cursor, cursor + chunk.length);
					}
				}]
			}, {
				name: 'groupLink',
				data: [{
					name: 'cmdUrl',
					title: 'URL/Link',
					hotkey: 'Ctrl+L',
					icon: {glyph: 'gly gly-link', fa: 'fa fa-link', 'fa-3': 'icon-link', mdi: 'mdi-insert-link'},
					callback: function (e) {
						// Give [] surround the selection and prepend the link
						var chunk, cursor, selected = e.getSelection(), content = e.getContent(), link;

						if (selected.length === 0) {
							// Give extra word
							chunk = e.__localize('enter link description here');
						} else {
							chunk = selected.text;
						}

						/* link = prompt(e.__localize('Insert Hyperlink'), 'http://');*/
						link = 'http://';
						/*  if (link !== null && link !== '' && link !== 'http://' && link.substr(0, 4) === 'http') {*/
						var sanitizedLink = $('<div>' + link + '</div>').text();

						// transform selection and set the cursor into chunked text
						e.replaceSelection('[' + chunk + '](' + sanitizedLink + ')');
						cursor = selected.start + chunk.length + 10;

						// Set the cursor
						e.setSelection(cursor, cursor);
						/* }*/
					}
				}, {
					name: 'cmdImage',
					title: 'Image',
					hotkey: 'Ctrl+G',
					icon: {glyph: 'gly gly-picture', fa: 'fa fa-picture-o', 'fa-3': 'icon-picture', mdi: 'mdi-photo'},
					callback: function (e) {
						e.$uploadMode = true;
						e.showUpload(e);

					}
				}]
			}, {
				name: 'groupMisc',
				data: [{
					name: 'cmdList',
					hotkey: 'Ctrl+U',
					title: 'Unordered List',
					icon: {glyph: 'gly gly-list', fa: 'fa fa-list', 'fa-3': 'icon-list-ul', mdi: 'mdi-format-list-bulleted'},
					callback: function (e) {
						// Prepend/Give - surround the selection
						var chunk, cursor, selected = e.getSelection(), content = e.getContent();

						// transform selection and set the cursor into chunked text
						if (selected.length === 0) {
							// Give extra word
							chunk = e.__localize('list text here');

							e.replaceSelection('- ' + chunk);
							// Set the cursor
							cursor = selected.start + 2;
						} else {
							if (selected.text.indexOf('\n') < 0) {
								chunk = selected.text;

								e.replaceSelection('- ' + chunk);

								// Set the cursor
								cursor = selected.start + 2;
							} else {
								var list = [];

								list = selected.text.split('\n');
								chunk = list[0];

								$.each(list, function (k, v) {
									list[k] = '- ' + v;
								});

								e.replaceSelection('\n\n' + list.join('\n'));

								// Set the cursor
								cursor = selected.start + 4;
							}
						}

						// Set the cursor
						e.setSelection(cursor, cursor + chunk.length);
					}
				},
					{
						name: 'cmdListO',
						hotkey: 'Ctrl+O',
						title: 'Ordered List',
						icon: {glyph: 'gly gly-th-list', fa: 'fa fa-list-ol', 'fa-3': 'icon-list-ol', mdi: 'mdi-format-list-numbered'},
						callback: function (e) {

							// Prepend/Give - surround the selection
							var chunk, cursor, selected = e.getSelection(), content = e.getContent();

							// transform selection and set the cursor into chunked text
							if (selected.length === 0) {
								// Give extra word
								chunk = e.__localize('list text here');
								e.replaceSelection('1. ' + chunk);
								// Set the cursor
								cursor = selected.start + 3;
							} else {
								if (selected.text.indexOf('\n') < 0) {
									chunk = selected.text;

									e.replaceSelection('1. ' + chunk);

									// Set the cursor
									cursor = selected.start + 3;
								} else {
									var list = [];

									list = selected.text.split('\n');
									chunk = list[0];

									$.each(list, function (k, v) {
										list[k] = '1. ' + v;
									});

									e.replaceSelection('\n\n' + list.join('\n'));

									// Set the cursor
									cursor = selected.start + 5;
								}
							}

							// Set the cursor
							e.setSelection(cursor, cursor + chunk.length);
						}
					},
					{
						name: 'cmdCode',
						hotkey: 'Ctrl+K',
						title: 'Code',
						icon: {glyph: 'gly gly-asterisk', fa: 'fa fa-code', 'fa-3': 'icon-code', mdi: 'mdi-code'},
						callback: function (e) {
							// Give/remove ** surround the selection
							var chunk, cursor, selected = e.getSelection(), content = e.getContent();

							if (selected.length === 0) {
								// Give extra word
								chunk = e.__localize('code text here');
							} else {
								chunk = selected.text;
							}

							// transform selection and set the cursor into chunked text
							if (content.substr(selected.start - 4, 4) === '```\n'
								&& content.substr(selected.end, 4) === '\n```') {
								e.setSelection(selected.start - 4, selected.end + 4);
								e.replaceSelection(chunk);
								cursor = selected.start - 4;
							} else if (content.substr(selected.start - 1, 1) === '`'
								&& content.substr(selected.end, 1) === '`') {
								e.setSelection(selected.start - 1, selected.end + 1);
								e.replaceSelection(chunk);
								cursor = selected.start - 1;
							} else if (content.indexOf('\n') > -1) {
								e.replaceSelection('```\n' + chunk + '\n```');
								cursor = selected.start + 4;
							} else {
								e.replaceSelection('`' + chunk + '`');
								cursor = selected.start + 1;
							}

							// Set the cursor
							e.setSelection(cursor, cursor + chunk.length);
						}
					},
					{
						name: 'cmdQuote',
						hotkey: 'Ctrl+Q',
						title: 'Quote',
						icon: {glyph: 'gly gly-comment', fa: 'fa fa-quote-left', 'fa-3': 'icon-quote-left', mdi: 'mdi-format-quote'},
						callback: function (e) {
							// Prepend/Give - surround the selection
							var chunk, cursor, selected = e.getSelection(), content = e.getContent();

							// transform selection and set the cursor into chunked text
							if (selected.length === 0) {
								// Give extra word
								chunk = e.__localize('quote here');

								e.replaceSelection('> ' + chunk);

								// Set the cursor
								cursor = selected.start + 2;
							} else {
								if (selected.text.indexOf('\n') < 0) {
									chunk = selected.text;

									e.replaceSelection('> ' + chunk);

									// Set the cursor
									cursor = selected.start + 2;
								} else {
									var list = [];

									list = selected.text.split('\n');
									chunk = list[0];

									$.each(list, function (k, v) {
										list[k] = '> ' + v;
									});

									e.replaceSelection('\n\n' + list.join('\n'));

									// Set the cursor
									cursor = selected.start + 4;
								}
							}

							// Set the cursor
							e.setSelection(cursor, cursor + chunk.length);
						}
					}]
			}, {
				name: 'groupUtil',
				data: [{
					name: 'cmdPreview',
					toggle: true,
					hotkey: 'Ctrl+P',
					title: 'Preview',
					//btnText: 'Preview',
					//btnClass: 'btn btn-primary btn-sm',
					icon: {glyph: 'gly gly-search', fa: 'fa fa-search', 'fa-3': 'icon-search', mdi: 'mdi-visibility'},
					callback: function (e) {
						// Check the preview mode and toggle based on this flag
						var isPreview = e.$isPreview, content;

						if (isPreview === false) {
							// Give flag that tell the editor enter preview mode
							e.showPreview();
						} else {
							e.hidePreview();
						}
					}
				}]
			}]
		],
		additionalButtons: [], // Place to hook more buttons by code
		reorderButtonGroups: [],
		hiddenButtons: [], // Default hidden buttons
		disabledButtons: [], // Default disabled buttons
		footer: '',
		fullscreen: {
			enable: true,
			icons: {
				fullscreenOn: {
					fa: 'fa fa-expand',
					glyph: 'gly gly-fullscreen',
					'fa-3': 'icon-resize-full',
					mdi: 'mdi-fullscreen'
				},
				fullscreenOff: {
					fa: 'fa fa-compress',
					glyph: 'gly gly-fullscreen',
					'fa-3': 'icon-resize-small',
					mdi: 'mdi-fullscreen-exit'
				}
			}
		},

		/* Events hook */
		onShow: function (e) {
		},
		onPreview: function (e) {
		},
		onSave: function (e) {
		},
		onBlur: function (e) {
		},
		onFocus: function (e) {
		},
		onChange: function (e) {
		},
		onFullscreen: function (e) {
		}
	};

	$.fn.markdown.Constructor = Markdown;


	/* MARKDOWN NO CONFLICT
	 * ==================== */

	$.fn.markdown.noConflict = function () {
		$.fn.markdown = old;
		return this;
	};

	/* MARKDOWN GLOBAL FUNCTION & DATA-API
	 * ==================================== */
	var initMarkdown = function (el) {
		var $this = el;

		if ($this.data('markdown')) {
			$this.data('markdown').showEditor();
			return;
		}
		$this.markdown()
	};

	var blurNonFocused = function (e) {
		var $activeElement = $(document.activeElement);

		// Blur event
		$(document).find('.md-editor').each(function () {
			var $this = $(this),
				focused = $activeElement.closest('.md-editor')[0] === this,
				attachedMarkdown = $this.find('textarea').data('markdown') ||
					$this.find('div[data-provider="markdown-preview"]').data('markdown');

			if (attachedMarkdown && !focused) {
				attachedMarkdown.blur();
			}
		})
	};
	$(document)
		.on('click.markdown.data-api', '[data-provide="markdown-editable"]', function (e) {
			initMarkdown($(this));
			e.preventDefault();
		})
		.on('click focusin', function (e) {
			blurNonFocused(e);
		})
		.ready(function () {
			$('textarea[data-provide="markdown"]').each(function () {
				initMarkdown($(this));
			})
		});
}(window.jQuery);
/**
 * Chinese translation for bootstrap-markdown
 * benhaile <denghaier@163.com>
 */
(function ($) {
	$.fn.markdown.messages['zh'] = {
		'Bold': "粗体",
		'Italic': "斜体",
		'Heading': "标题",
		'URL/Link': "链接",
		'Image': "图片",
		'List': "列表",
		'Unordered List': "无序列表",
		'Ordered List': "有序列表",
		'Code': "代码",
		'Quote': "引用",
		'Preview': "预览",
		'strong text': "粗体",
		'emphasized text': "强调",
		'heading text': "标题",
		'enter link description here': "输入链接说明",
		'enter attachment name here': "输入附件名称",
		'Insert Hyperlink': "URL地址",
		'enter image description here': "输入图片说明",
		'Insert Image Hyperlink': "图片URL地址",
		'enter image title here': "在这里输入图片标题",
		'list text here': "这里是列表文本",
		'code text here': "这里输入代码",
		'quote here': "这里输入引用文本",
		'Cancle': "取消",
		'Insert':'插入',
		'ImageTip':'图片地址以http://、https://或ftp://格式开头',
		'BrowerSupportTip':'你的浏览器不被支持(IE10+)!'
	};
}(jQuery));